Wrong fragment in ViewPager receives onContextItemSelected call

前端 未结 5 1961
佛祖请我去吃肉
佛祖请我去吃肉 2020-11-28 12:00

I have an app that shows a few fragments (of the same type) in a ViewPager and I\'m having some trouble with context menu items. (I\'m using the support library

5条回答
  •  自闭症患者
    2020-11-28 12:24

    Using intent for each of the menu items worked well for me.

        @Override  
        public void onCreateContextMenu(ContextMenu menu, View v, ContextmenuInfo menuInfo) {
            super.onCreateContextMenu(menu, v, menuInfo);
    
            MenuInflater inflater = super.getActivity.getMenuInflater();
    
            inflater.infalte(R.menu.list_item, menu);
    
            for(int i = 0; i < menu.size(); i++) {
                MenuItem item = menu.getItem(i);
                Intent intent = new Intent();
                intent.putExtra(KEY_EXTRA_FRAGMENT_ID, this.fragmentId);
                if (item != null) {
                    item.setIntent(intent);
                }
            }
        }
    
        @Override
        public boolean onContextItemSelected(MeniItem item) {
    
            Intent intent = item.getIntent();
    
            if (intent != null) {
                if (intent.getIntExtra(KEY_EXTRA_FRAGMENT_ID, -1) == this.fragmentId) {
    
                    // Implement code according the item function.
    
                    return true;
                }
            }
    
            return super.onContextItemSelected(item);
        }
    

提交回复
热议问题