onContextItemSelected有两个片段的问题

时间:2017-07-05 15:46:44

标签: android android-fragments android-contextmenu

我正在使用function on(object, event, callback) { object.addEventListener(event, callback); } 。我有两个标签,因此有两个片段,每个片段都有自己的上下文菜单选项。我的问题是当我单击片段B中的上下文菜单选项时,调用片段A中的方法ViewPager。我该如何解决这个问题?

我的做法与官方Android文档中显示的相同: https://developer.android.com/guide/topics/ui/menus.html#context-menu

onContextItemSelected()

2 个答案:

答案 0 :(得分:2)

你可以像这样修理它:

FragmentManager manager = getFragmentManager();
if (manager.findFragmentByTag("frag1").isVisible()){
    // do fragment 1
}else{

}

答案 1 :(得分:1)

工作ContextMenu的示例

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
        menu.setHeaderTitle("");
        menu.setHeaderIcon("");
        String[] menuItems = getResources().getStringArray(R.array.ContextMenu);
        for (int I = 0; I < menuItems.length; I++) {
            menu.add(Menu.NONE, I, I, menuItems[I]);
        }
    }
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
        int menuItemIndex = item.getItemId();

        if(menuItemIndex == 0){
            //do something
        }

        return true;
    }

还要检查为上下文菜单注册的视图。

registerForContextMenu(view);