1. ホーム
  2. java

アダプターでアクティビティを開始するには?

2023-09-15 19:53:53

質問

カスタマイズしたアダプタでListActivityを作成し、各ビューの内部にいくつかのボタンを配置しています。 OnClickListener . を実装する必要があります。 OnClickListener をアダプタに実装する必要があります。しかし、以下のような関数をどのように呼び出せばいいのかわかりません。 startActivity() または setResult() . アダプタはActivityまで拡張しないので。

では、この問題を解決する最善の方法は何でしょうか?

ありがとうございます。

どのように解決するのですか?

Adapter のコンストラクタに現在の Context を渡し、それをフィールドとして保存するだけです。そして、onClick の中でそのコンテキストを使用して startActivity() を呼び出します。

擬似コード

public class MyAdapter extends Adapter {
     private Context context;

     public MyAdapter(Context context) {
          this.context = context;     
     }

     public View getView(...){
         View v;
         v.setOnClickListener(new OnClickListener() {
             void onClick() {
                 context.startActivity(...);
             }
         });
     }
}