2012-02-09 12 views
1

私はonItemClickメソッドをオーバーライドしようとしています。私の質問は、なぜonItemClick方法は下線を保つんですなぜEclipseはメソッドを強調表示していますか?

import android.app.Activity; 
import android.app.ListActivity; 
import android.content.ContentUris; 
import android.content.Intent; 
import android.database.Cursor; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.Contacts.People; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 
import android.widget.TextView; 
import android.widget.AdapterView.OnItemClickListener; 

public class ListViewActivityActivity extends ListActivity implements OnItemClickListener { 

    @Override 
    public void onItemClick(AdapterView adview, View target, int position, long id) {} 

} 

:私は下に私の輸入とメソッドを置くのだろうか?私は間違って何をしていますか? 私はプロジェクトをリロードしようとしましたが、それは助けになりませんでした。誰も同じ問題にぶつかる?

PS私はそれの上に置くと、それは言う:タイプListViewActivityActivityの方法onItemClick(AdapterView、ビュー、int型、長い)がスーパークラスのメソッドをオーバーライドする必要があります

+0

下線が引かれた方法の上にマウスを置くと、eclipseはどうなるでしょうか? Ctrl + 1を押すと、何が表示されますか? – kostja

+0

また、「問題のビュー」には何らかのメッセージがありますか? –

+0

私は推測させてください...プロジェクトのJavaコンパイラレベルは "1.5"に設定されていますか? –

答えて

4

あなたのプロジェクトは1.5に設定されたJavaコンパイラのレベルを持っています

これはonItemClickを無効にする正しい方法です。 @Overrideアノテーションは、Java 1.5でインタフェースメソッドを実装するクラスには使用できません。これはJava 1.6以降でのみ許可されています。

プロジェクトのプロパティ(プロジェクトのコンテキストメニュー)に移動し、Java Compilerを選択し、コンパイラの準拠レベルを1.6に設定します。

+0

ねえ...それは働いた..ありがとうNeo !!私は彼のことを意味する! – Beetle

0

あなたはAdapterViewの非ジェネリック型が、元を使用していますメソッドはジェネリック型を使用します。これはコンパイラによって許可されていますが、推奨されていません。

@Override 
public void onItemClick(AdapterView<?> adview, View target, int position, long id) {} 
+0

見つけた!コードから@Overrideを削除する必要があります。私はそれがどのようにオーバーライドせずに動作するのかわかりません。しかし、それは動作します! – Beetle

+0

いいえ、注釈を削除する必要はありません。 –

+0

あなたは奇跡の労働者です! – Beetle

関連する問題