如何使用onMenuItemSelected

时间:2016-02-13 09:29:23

标签: android menuitem

我正在使用onCreateOptionsItem,如下面的代码中所示,但当我覆盖onMenuItemSelected时,它标记为红色。它有替代品吗?怎么样 我可以解决这个错误

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;


@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuItem miRefrsh = menu.add(0, 1, 0,"refresh");
    miRefrsh.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    //进入关于页面
    MenuItem miScan = menu.add(0, 2, 1, "scan");
    miScan.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
    //退出系统
    MenuItem miCancel = menu.add(0, 3, 2, "cancel");
    miCancel.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);

    MenuItem miExit = menu.add(0, 4, 2, "exit");
    miExit.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);

    return super.onCreateOptionsMenu(menu);

}

public boolean onMenuItemSelected(int featureId, MenuItem item) {
    switch(item.getItemId()) {
        case MEMU_RESCAN: 
            this.mGP.closeConn();
            this.initActivityView(); 
            this.openDiscovery(); 
            return true;
        case MEMU_EXIT: 
            this.finish();
            return true;
        case MEMU_ABOUT: 
            this.openAbout();
            return true;
        default:
            return super.onMenuItemSelected(featureId, item);
    }

4 个答案:

答案 0 :(得分:5)

@Override
public boolean onOptionsItemSelected(MenuItem item) {  

    // do Your Work Here  
    return super.onOptionsItemSelected(item);
}

Android知道几种类型的菜单(例如选项菜单和上下文菜单)。 ''onMenuItemSelected''是通用回调。您通常不需要使用它。 ''onOptionsItemSelected''是选项菜单的回调,onContextItemSelected是上下文菜单的回调。

答案 1 :(得分:2)

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == android.R.id.home) { //or switch-case
            finish();
        }

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

        }

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

        } 
        return super.onOptionsItemSelected(item);
    }

SUDARSHAN是对的。你可以使用onOptionsItemSelected。

答案 2 :(得分:2)

使用onOptionsItemSelected(MenuItem item)方法并扩展AppCompatActivity

答案 3 :(得分:0)

在您的情况下,您应该使用menuItem.getTitle()并与之前以编程方式添加的标题进行比较。在膨胀XML菜单文件时,请在线使用menuItem.getId。希望这有帮助