Android菜单getItemId int比较失败

时间:2017-11-12 21:24:27

标签: java android menuitem

我写了一个小测试程序,试试popup menues是如何工作的。 菜单不是静态的,而是动态填充的。菜单条目的ID为1和2。

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_atctour_list);

    final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fabATCTourListAddTour);
    fab.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            PopupMenu menu = new PopupMenu(fab.getContext(), v);
            menu.getMenu().add(Menu.NONE, 1, 1, "Entry 1");
            menu.getMenu().add(Menu.NONE, 2, 2, "Entry 2");
            menu.show();

            menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    int i = item.getItemId();
                    if(i == 1) {
                        return true;
                    } else if(i == 2){
                            return true;
                    } else {
                        return false;
                    }
                }

            });
        }});
}

在onMenuItemClick方法中,我试图找出已选择的条目。结果是if子句总是在else条件下运行。

调试显示选择项目1/2会生成id 1/2。与1/2的比较从不匹配。

我不知道什么是错的。任何帮助都会很好。

0 个答案:

没有答案