我创建了一个滑动选项卡活动,并且试图动态更改应用程序栏的标题.但是我所做的一切似乎都行不通!这是我的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无法正常工作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)