6

我知道有很多人问同样的问题(很多人回答),但他们的回答都没有帮助我。

如果我从接口匿名实现方法,我总是会收到 @override 注释错误。

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override //  <-- **this will give error message**
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            Menu menu = MainMenu.listMenu.get(i);


            Tabs.setCurrentTab(menu.pos + 1); 
        }
    });

我正在团队中开发我的 android 应用程序。我的团队在使用 Eclipse 时使用 IDEA。我的团队从未收到此错误。会不会是eclipse的bug?

我们的java版本是一样的,1.6。我的eclipse版本是3.7。

错误是:

Multiple markers at this line
- The method onItemClick(AdapterView<?>, View, int, long) of type new AdapterView.OnItemClickListener(){} must override a superclass 
 method
- implements android.widget.AdapterView.OnItemClickListener.onItemClick

谁能建议可以采取一些措施来消除此错误?

编辑:更多信息,在这种情况下我不会出错:

@Override
    public View getView(int position, View v, ViewGroup parent) {
        try {
            ...
            }

            Menu menu = Menu.getListMenu().get(position);

            if (menu != null){
               ...
            }
        } catch (Exception e) {
          ...
        }

        return v;
    }
4

1 回答 1

10

从现有代码导入项目时,我曾多次遇到此问题。出于某种原因,JDK 合规级别默认为 Java 1.5,即使您的机器上安装了 1.6。如果是这种情况,请在 Eclipse 包资源管理器中右键单击您的项目,选择 Properties,选择 Java Compiler 部分,并将 JDK Compliance level 设置为 1.6

于 2012-08-15T11:20:57.693 回答