Home类型的onOptionItemSelected(MenuItem)方法必须覆盖超类方法

时间:2012-11-05 22:31:06

标签: android override

我在以下代码中收到此消息:

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,因为我已经在某个地方看到了它,而且我的代码似乎没有用。

这是我在这里的第一个问题,所以如果我忘记了什么,请不要太难。

2 个答案:

答案 0 :(得分:4)

尝试 onOptionsItemSelected(..)

你错过了's',你有onOptionsItemSelected(..)

答案 1 :(得分:0)

好吧,我不知道为什么编译器找不到超类方法,但是......这就是问题所在。

如果您使用@O​​verride注释了您的方法,编译器会尝试在超类中找到该方法并且找不到它(perphaps,因为,该方法的第一个发生之前是两个或三个类,而不是立即之前。

解决方案:删除@Override注释。编译器不会检查超类方法,您的代码将编译好。

如果没有注释,您的代码将正常工作。

PD。对不起我糟糕的英语。 ç

UPPS。这是真的。该方法是onOptionsItemSelected,带有一个大's'。这就是为什么你的覆盖注释不起作用,编译器找不到超类方法。