私はかなり複雑な を書いていますがListView
、これには(とりわけ)各リスト項目のビューのフォーマットが必要です。
ビューが各リスト項目にどのようにバインドされるかを完全に制御できるようにするために、次のCursorAdapter
方法でサブクラス化しました。
public class MyAdapter extends CursorAdapter {
public final LayoutInflater mInflater;
public MyAdapter(Context context, Cursor c) {
super(context, c);
mInflater = LayoutInflater.from(context);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
final ToggleButton tButton = (ToggleButton) view.findViewById(R.id.tbutton);
tButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// start activity based on a pending intent
}
});
}
}
問題は、ToggleButton
クリック リスナーが保留中のインテントに基づいてアクティビティを開始する必要があることです。保留中のインテントは、このカスタマイズされたアダプターを利用するアクティビティでインスタンス化されます。
SimpleCursorAdapter
メインActivity
で a を a とともに使用できることを認識しているViewBinder
ため、インテントの起動はメインからのみ必要になりActivity
ます。しかし、SimpleCursorAdapter
列をビューに直接マップしていないため、正しくありません。
Activity
ただし、ここでの代替手段は、カーソル サブクラスからmain のデータにアクセスすることを提案します。アプリケーションを設計するためのより良い方法があるに違いないと感じています。