羊皮書アプリ(Android版)開発シリーズ(20)ActivityでListView,GridView内部ボタンのクリックイベントに応答

1373 ワード

業務が少し複雑なインタフェースは,ListView,GridViewなどのAdapterに内部ボタンがあり,内部ボタンのクリックイベントを扱う必要がある.一方、AdapterとActivityは分離されており(ActivityにAdapterを書かないでください)、この場合、ActivityでListView、GridViewの内部ボタンに応答するクリックイベントをコールバックで実現することができます.

Adapterでインタフェースを定義します(または外部で定義しても構いません)

 private Callback editCallback;
 public interface Callback {
        public void click(View v);
    }


Adapterの構築方法の作成

 public StudentNormalDataInfoAdapter(Context context,Callback editCallback) {
        super();
        mInflater = LayoutInflater.from(context);
        this.editCallback = editCallback;
    }

AdapterのgetViewでクリックイベントを設定する

viewHolder.students_quality_delete_bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                editCallback.click(v);
            }
        });

以上のステップを完了すると、Activityでボタンクリックイベントに応答できます。

public class HistoryActivity extends Activity implements Callback {
 @Override
    public void click(View v){
    L.e("        ");
    }
    ...
}


通常、クリックイベントにはいくつかのパラメータがありますが、この場合はインタフェースCallbackのclickに直接パラメータを追加すればいいです。また、他の需要もこのような方法を採用することができます。


Adapterについて今日鴻洋大神が源を開いて出てきたbaseAdapterを見て、とても良くて、多くの地方がみんなに学ぶ価値があって、みんなに見てみることをお勧めします.