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を使用しています。私のチームでは、このエラーは発生しません。それは日食のバグでしょうか?

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

既存のコードからプロジェクトをインポートするときに、この問題が何度か発生しました。マシンに 1.6 がインストールされていても、何らかの理由で JDK 準拠レベルがデフォルトで Java 1.5 に設定されます。この場合、Eclipse パッケージ エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択し、[Java コンパイラ] セクションを選択して、JDK 準拠レベルを 1.6 に設定します。

于 2012-08-15T11:20:57.693 に答える