我在以下代码中收到此消息:
public boolean onOptionItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.x:
Log.i(Home, "klick");
case R.id.y:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
我总是得到这个错误:
Home类型的onOptionItemSelected(MenuItem)方法必须覆盖a 超类方法
我在互联网上搜索过,有一些关于stackoverflow的帖子,但是! 我的编译器设置为1.6,我的项目也没有例外。
为什么必须覆盖超类方法?这个方法不是超类方法,我使用super.onOptions ...?
我想拥有一个@Override,因为我已经在某个地方看到了它,而且我的代码似乎没有用。
这是我在这里的第一个问题,所以如果我忘记了什么,请不要太难。
答案 0 :(得分:4)
尝试 onOptionsItemSelected(..)
你错过了's',你有onOptionsItemSelected(..)
答案 1 :(得分:0)
好吧,我不知道为什么编译器找不到超类方法,但是......这就是问题所在。
如果您使用@Override注释了您的方法,编译器会尝试在超类中找到该方法并且找不到它(perphaps,因为,该方法的第一个发生之前是两个或三个类,而不是立即之前。
解决方案:删除@Override注释。编译器不会检查超类方法,您的代码将编译好。
如果没有注释,您的代码将正常工作。
PD。对不起我糟糕的英语。 ç
UPPS。这是真的。该方法是onOptionsItemSelected,带有一个大's'。这就是为什么你的覆盖注释不起作用,编译器找不到超类方法。