我正在使用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);
}
答案 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。希望这有帮助