选项菜单要求视图寻呼机中的 2 个片段如何处理??.



我正在使用查看页程序片段分页机适配器,它一次加载两个片段如何处理选项菜单,一次为两个片段调用它

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();
                          Fragment fragment=getFragments().get(position);
                          fragment.setHasOptionsMenu(true);
                            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");
            }


    }

片段1

public class Test1 extends Fragment {
    private ListView listView;
    public ActionBarActivity parentActivity;
    ArrayList<String> list = new ArrayList<String>();
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View view = inflater.inflate(R.layout.userlist, container, false);
        listView = (ListView) view.findViewById(R.id.listView1);
        parentActivity = (ActionBarActivity) getActivity();
        final ActionBar actionBar = parentActivity.getSupportActionBar();
         actionBar.setIcon(R.drawable.ic_launcher);
         actionBar.setTitle("UserList");
         actionBar.setSubtitle(null);
        list.add("Android");
        list.add("Android");
        list.add("Android");
        list.add("Android");
        list.add("Android");
        list.add("Android");
        list.add("Android");
        list.add("Android");
        list.add("Android");
        list.add("Android");
        list.add("Android");
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1, list);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub
                Test2 test2 = new Test2();
//              ((MainActivity) parentActivity).replaceFragment(test2, "chat");
            }
        });
        return view;
    }
    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onViewCreated(view, savedInstanceState);
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        setHasOptionsMenu(true);
        super.onCreate(savedInstanceState);
    }
    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        // TODO Auto-generated method stub
        Log.d("Test1", "******************onCreateOptionsMenu****************");
        super.onCreateOptionsMenu(menu, inflater);
    }
}

片段2

public class Test2 extends Fragment {
    public ActionBarActivity parentActivity;
    private ListView listView;
    ArrayList<String> list = new ArrayList<String>();
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        parentActivity = (ActionBarActivity) getActivity();
          final ActionBar actionBar = parentActivity.getSupportActionBar();
//        actionBar.setIcon(R.drawable.jio_chat_myprofile_add_contact);
          actionBar.setTitle("user namednfjgnlxnclkvbnxc");
          actionBar.setSubtitle("user status");
          View view = inflater.inflate(R.layout.conversation, container, false);
            listView = (ListView) view.findViewById(R.id.listView1);
            list.add("Android");
            list.add("converstion");
            list.add("converstion");
            list.add("converstion");
            list.add("converstion");
            list.add("converstion");
            list.add("converstion");
            list.add("converstion");
            list.add("converstion");
            list.add("converstion");
            list.add("converstion");
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
                    android.R.layout.simple_list_item_1, list);
            listView.setAdapter(adapter);
        return view;
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
          setHasOptionsMenu(true);
        super.onCreate(savedInstanceState);
    }
    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        // TODO Auto-generated method stub
        super.onCreateOptionsMenu(menu, inflater);
        menu.clear();
        getActivity().getMenuInflater().inflate(R.menu.new_message_menu, menu);
    }
}

要在单独的片段中使用单独的菜单,您只需使用

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    menu.clear();
    getActivity().getMenuInflater().inflate(R.menu.new_message_menu, menu);
}

片段中而不是在父活动中

最新更新