“选项”菜单在查看寻呼机android中被清除?
我正在操作栏选项卡、查看寻呼机和嵌套片段中使用选项菜单,当我使用选项卡从片段A切换到片段B时,菜单项工作正常,但当我尝试使用查看寻呼机切换时,选项项在片段中变得不可见“选项”菜单在查看寻呼机android中被清除?,android,android-viewpager,android-optionsmenu,Android,Android Viewpager,Android Optionsmenu,我正在操作栏选项卡、查看寻呼机和嵌套片段中使用选项菜单,当我使用选项卡从片段A切换到片段B时,菜单项工作正常,但当我尝试使用查看寻呼机切换时,选项项在片段中变得不可见 public class RTHomeTabFragment extends Fragment implements TabListener,OnBackButtonPressInterfaceForFragment{ public ActionBarActivity parentActivity;
public class RTHomeTabFragment extends Fragment implements TabListener,OnBackButtonPressInterfaceForFragment{
public ActionBarActivity parentActivity;
private ActionBar actionBar;
ViewPager mViewPager;
public static int currentPage;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
RTMessagingUtils.log(getClass().getName(), "onCreateView");
View view = inflater.inflate(R.layout.viewpager_tabs, container,false);
parentActivity = (ActionBarActivity) getActivity();
actionBar = parentActivity.getSupportActionBar();
mViewPager = (ViewPager) view.findViewById(R.id.pager);
/* actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);*/
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setCustomView(null);
actionBar.removeAllTabs();
List<Fragment> fragments = getFragments();
pagerAdapter adapter = new pagerAdapter(getChildFragmentManager(), getFragments());
mViewPager.setAdapter(adapter);
currentPage=mViewPager.getCurrentItem();
Log.d("TestFragments", "currentPage======"+currentPage);
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
currentPage=mViewPager.getCurrentItem();
Log.d("TestFragments", "currentPage======"+currentPage);
}
});
for (int i = 0; i < adapter.getCount(); i++) {
actionBar.addTab(actionBar.newTab().setText(adapter.getPageTitle(i)).setTabListener(this));
}
return view;
}
private List<Fragment> getFragments(){
List<Fragment> fList = new ArrayList<Fragment>();
// add fragments here
fList.add(new Test1());
fList.add(new Test2());
fList.add(new Test3());
return fList;
}
class pagerAdapter extends FragmentPagerAdapter{
private List<Fragment> fragments;
public pagerAdapter(FragmentManager fm, List<Fragment> fragments){
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
Locale l = Locale.getDefault();
switch (position) {
case 0:
return getString(R.string.db_jio_chat_chats).toUpperCase(l);
case 1:
return getString(R.string.db_jio_chat_groups).toUpperCase(l);
case 2:
return getString(R.string.db_jio_chat_contacts).toUpperCase(l);
/*case 3:
return getString(R.string.db_jio_chat_my_profile).toUpperCase(l);
case 4:
return getString(R.string.db_jio_chat_location).toUpperCase(l);
case 5:
return getString(R.string.db_jio_chat_about).toUpperCase(l);*/
}
return null;
}
}
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
// setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
}
@Override
public void onTabSelected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
mViewPager.setCurrentItem(arg0.getPosition());
}
@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
@Override
public void onResume() {
super.onResume();
RTMessagingUtils.log(getClass().getName(), "onResume");
}
@Override
public void onPause() {
super.onPause();
RTMessagingUtils.log(getClass().getName(), "onPause");
}
}
公共类RhometabFragment扩展了片段实现了TabListener、OnBackButtonPressInterfaceForFragment{
公共行动活动;
私人ActionBar ActionBar;
ViewPager mViewPager;
公共静态页面;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
RTMessagingUtils.log(getClass().getName(),“onCreateView”);
视图=充气机。充气(R.layout.viewpager_选项卡,容器,错误);
parentActivity=(ActionBarActivity)getActivity();
actionBar=parentActivity.getSupportActionBar();
mViewPager=(ViewPager)view.findViewById(R.id.pager);
/*actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowHomeEnabled(false)*/
actionBar.setNavigationMode(actionBar.NAVIGATION\u MODE\u选项卡);
actionBar.setCustomView(空);
actionBar.removeAllTabs();
List fragments=getFragments();
pagerAdapter适配器=新的pagerAdapter(getChildFragmentManager(),getFragments());
mViewPager.setAdapter(适配器);
currentPage=mViewPager.getCurrentItem();
Log.d(“TestFragments”,“currentPage===”+currentPage);
mViewPager.setOnPageChangeListener(新的ViewPager.SimpleOnPageChangeListener(){
@凌驾
已选择页面上的公共无效(内部位置){
actionBar.setSelectedNavigationItem(位置);
currentPage=mViewPager.getCurrentItem();
Log.d(“TestFragments”,“currentPage===”+currentPage);
}
});
对于(inti=0;i
在getItem方法中,对测试执行以下操作:
@Override
public Fragment getItem(int position) {
if(position == 0)
return new Test1();
else
return new Test2();
}
看看这是否管用,如果管用的话,我会在后面找到解释…显示你的Adpeter代码查看页面..谢谢,用Adapter编辑的帖子我也在这里做同样的事情@Override public Fragment getItem(int position){return this.fragments.get(position);}你也可以调用getFragments()两次。