4

リストビューと、リストビューにonItemClickメソッドを含むクリックリスナーを備えたAndroidアプリケーションを構築しています。だから私はこのようなものを持っています:

public class myList extends ListActivity {
    @Override
public void onCreate(Bundle savedInstanceState) {
        getListView().setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
            /* Do something*/
        }
    }
}

通常、これは正常に機能します。ただし、多くの場合、外部クラスをコンテキストとして使用してアプリケーションを実行する必要があります。これまで、私は以下を使用しました:

parent.getContext();

これを行うには、しかし私は知りたいのですが、それは悪い考えですか?私は本当に呼び出すことはできません:

super

それは実際にはサブクラスではなく、埋め込まれたものだからです。それで、もっと良い方法はありますか、それともそれは安心と見なされますか?また、それが正しい方法である場合、埋め込みメソッドに外部クラスを取得するためのパラメーターがない場合はどうすればよいですか?

ありがとうございました。

4

2 に答える 2

3

私があなたの質問を正しく理解しているなら、あなたは匿名の内部クラスの中から外部クラスを呼び出したいですよね?これを行うには、次の構文を使用します。

myList.this.getContext();

onItemClick匿名内部クラスのメソッド内から。これは、内部クラスがそれを含む外部クラスのインスタンスにアクセスするために定義された特別な構文です。

于 2010-04-19T03:13:18.847 に答える
2

匿名の内部クラス内では、EnclosingClass.thisを使用して外部クラスのハンドルを取得できます。詳細については、こちらをご覧ください。それの長短は、onItemClick()ectでmyList.this.getContext()を使用できることです。

于 2010-04-19T03:11:08.870 に答える