我已经以编程方式添加了菜单项,现在如何在onClickmenuitem上调用菜单项

时间:2014-01-17 05:54:37

标签: android menuitem

因为我已经以编程方式添加了菜单项,所以我没有得到如何在onClickmenuitem上应用案例,因为之前的Id被引用了菜单。

以下是我添加菜单

的代码
 menu.add(0, 0, 0, "Fullscreen").setIcon(android.R.drawable.ic_menu_search).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

3 个答案:

答案 0 :(得分:0)

Android SDK提供以下方法

onCreateOptionsMenu(Menu menu)
onPrepareOptionsMenu(Menu menu)
onOptionsItemSelected(MenuItem item)
invalidateOptionMenu()

不是动态添加菜单项,而是可以在xml中定义菜单项,并从onPrepareOptionsMenu()方法显示/隐藏菜单项。

每次我们通过invalidateOptionsMenu()中的代码致电Activity时,Android系统都会确认选项菜单已更改,因此应重新创建。

当重新创建菜单选项时,会调用onPrepareOptionsMenu,您可以在其中编写代码以根据需要显示/隐藏不同的菜单项。

希望这能为您提供另一种解决此问题的方法。

答案 1 :(得分:0)

这可能对你有帮助......

private static final int MENU_ID = 0xFEED;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    getMenuInflater().inflate(R.menu.main, menu);
    menu.add(Menu.NONE, MENU_ID, Menu.NONE, "FullScreen")
            .setIcon(android.R.drawable.ic_menu_search)
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case MENU_ID:
        // handle event...
        break;

    default:
        break;
    }
    return super.onOptionsItemSelected(item);
}

答案 2 :(得分:0)

请按照这种方式

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case 10:
        Toast.makeText(LoginPageActivity.this, "Now "+item.getItemId(), Toast.LENGTH_SHORT).show();
        return true;
    case 15:
        Toast.makeText(LoginPageActivity.this, "Now = "+item.getItemId(), Toast.LENGTH_SHORT).show();
        return true;
    case 20:
        Toast.makeText(LoginPageActivity.this, "Now == "+item.getItemId(), Toast.LENGTH_SHORT).show();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}