java-setTitle无法正常工作

java-setTitle无法正常工作,第1张

概述我创建了一个滑动选项卡活动,并且试图动态更改应用程序栏的标题.但是我所做的一切似乎都行不通!这是我的MainActivity.java:publicclassMainActivityextendsAppCompatActivity{ViewPagermPager;SlidingTabLayoutmTabs;@OverrideprotectedvoidonCreate(Bundlesaved

我创建了一个滑动选项卡活动,并且试图动态更改应用程序栏的标题.但是我所做的一切似乎都行不通!这是我的MainActivity.java:

public class MainActivity extends AppCompatActivity {VIEwPager mPager;SlIDingTabLayout mTabs;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);    getSupportActionbar().setdisplayShowHomeEnabled(true);    mPager = (VIEwPager) findVIEwByID(R.ID.pager);    mPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));    mTabs = (SlIDingTabLayout) findVIEwByID(R.ID.tabs);    mTabs.setCustomTabVIEw(R.layout.custom_tab_vIEw, R.ID.tabText);    mTabs.setdistributeEvenly(true);    mTabs.setSelectedindicatorcolors(getResources().getcolor(R.color.colorAccent));    mTabs.setBackgroundcolor(getResources().getcolor(R.color.colorPrimary));    mTabs.setVIEwPager(mPager);}class MyPagerAdapter extends FragmentPagerAdapter {    int tabIcons[] = {R.drawable.ic_events, R.drawable.ic_clIEnts, R.drawable.ic_history};    String[] tabText = getResources().getStringArray(R.array.tabs);    public MyPagerAdapter(FragmentManager fm) {        super(fm);    }    @OverrIDe    public Fragment getItem(int position) {        switch (position){            case 0:                getSupportActionbar().setTitle("Events");                EventsFragment eventsFragment = EventsFragment.getInstance(position);                return eventsFragment;            case 1:                getSupportActionbar().setTitle("ClIEnts");                ClIEntsFragment clIEntsFragment = ClIEntsFragment.getInstance(position);                return clIEntsFragment;            case 2:                getSupportActionbar().setTitle("History");                HistoryFragment historyFragment = HistoryFragment.getInstance(position);                return historyFragment;            default:                getSupportActionbar().setTitle("Events");                EventsFragment defaultFragment = EventsFragment.getInstance(position);                return defaultFragment;        }    }    @OverrIDe    public CharSequence getPageTitle(int position) {        Drawable drawable = getResources().getDrawable(tabIcons[position]);        drawable.setBounds(0,0,64,64);        ImageSpan imageSpan = new ImageSpan(drawable);        SpannableString spannableString = new SpannableString(" ");        spannableString.setSpan(imageSpan, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);        return spannableString;    }    @OverrIDe    public int getCount() {        return 3;    }}

}

我还尝试使用以下方法在onCreate方法中设置应用栏的标题:

 getSupportActionbar().setTitle("Test");

这也不起作用.

我该如何解决?谢谢!

解决方法:

在MainActivity对象上调用setTitle方法.

从MainActivity内部调用:仅setTitle(…).从另一个类(MyPagerAdapter)调用:activity.setTitle(…)

活动是对MainActivity对象的引用.您可以使用getActivity(),它返回与片段关联的活动.

最后,使用getActivity().setTitle(…);为了从片段中设置标题.

总结

以上是内存溢出为你收集整理的java-setTitle无法正常工作全部内容,希望文章能够帮你解决java-setTitle无法正常工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1120747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存