针对不同适配器的Android不同选项菜单

时间:2013-10-12 02:15:08

标签: android listview adapter

我有一个名为contactsView和im设置适配器的listView,因此listview显示联系人和组。

在onCreate方法中我有:

contactsView.setAdapter(contactsAdapter)

然后我有一个带有监听器的组按钮,并且在该按钮的onClick上我有:

contactsView.setAdapter(groupsAdapter)

现在我的选项菜单代码如下所示:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        System.out.println(contactsView.getAdapter());
        if (contactsView.getAdapter().equals(contactsAdapter)){
            getMenuInflater().inflate(R.menu.contacts_options_menu, menu);
            return true;
        }else if (contactsView.getAdapter().equals(groupsAdapter)){
            getMenuInflater().inflate(R.menu.groups_options_menu, menu);
            return true;
        }else{
            return false;
        }
    }

然而它不起作用,我不明白为什么,任何想法?任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

经过一些研究,我发现了这个......

Android只调用onCreateOptionsMenu ONCE来创建初始选项菜单。如果要在运行时更改选项菜单 - 必须实现onPrepareOptionsMenu,当调用invalidateOptionsMenu()时将调用它。