Android 获取在运行时确定的片段页面标题
我使用的是包含两个片段的Android 获取在运行时确定的片段页面标题,android,android-fragments,Android,Android Fragments,我使用的是包含两个片段的FragmentPagerAdapter。两个片段从AbstractFragment扩展而来,AbstractFragment扩展了片段。创建片段时,我无法获取该片段的页面标题,因为该标题是作为片段的参数传递的: FragmentActivity的内部类: ArrayList<AbstractFragment> fragments = new ArrayList<AbstractFragment >(); public class Section
FragmentPagerAdapter
。两个片段从AbstractFragment扩展而来,AbstractFragment扩展了片段。创建片段时,我无法获取该片段的页面标题,因为该标题是作为片段的参数传递的:
FragmentActivity的内部类:
ArrayList<AbstractFragment> fragments = new ArrayList<AbstractFragment >();
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return fragments.get(position).getTitle();
}
}
具体片段:
@Override
public String getTitle(){
return title;
}
问题解决了,如果我滑动到下一个片段,标题将出现,但不会在创建时出现。有什么建议吗?您正在调用
getTitle
,此时尚未为该片段调用onCreate
。已知的解决方法是检查是否调用了onCreate
,如果没有,则返回data.getString(KEY\u CHART\u TITLE)
谢谢,它起作用了。没想到这么简单。我一直在想我应该从活动中获取适配器,然后再次手动调用它。谢谢
@Override
public String getTitle(){
return title;
}
public String getTitle()
{
if( title == null )
{
title = getArguments().getString(KEY_CHART_TITLE);
}
return title;
}