设置onMenuItemClickListener

时间:2015-03-12 16:16:01

标签: java android onclicklistener menuitem

我试图为我的菜单项设置一个自定义监听器,但是无论我在哪里尝试这样做,我都会通过id搜索任何菜单项获得null。它在主要活动中使用方法onOptionItemSelected()可以正常工作,但这很难看。我试图在onCreateOptionsMenu()onPrepareOptionsMenu()甚至在onCreate()中设置听众但是他们都让我失望了 - 哪个方法是为menuItems设置监听器的正确方法?

2 个答案:

答案 0 :(得分:0)

在充气时,您需要对您的菜单进行参考,它们的菜单项不属于普通视图层次结构。

然后,您可以轻松地从保存的菜单参考中获取菜单项ID,我之前使用过此方法并且它可以正常工作,但它不像使用标准菜单监听器那样干净。

答案 1 :(得分:0)

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();

    if ( id == R.id.xxx ) {

       // logic
    }

    return true;
}