ListFragment
カスタムアダプターを使用して、ボタンのクリックをどのように処理するのが最善かを知りました。
ボタンのonClickListener
セットアップはありますが、クリックされたアイテムを取得できるようにする必要があります。これはアイテム内にあるためgetView
、カスタムアダプターの内部です。
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null) {
view = _inflater.inflate(R.layout.test_single_item, parent, false);
} else {
view = convertView;
}
TestItemModel item = getItem(position);
((TextView) view.findViewById(R.id.item_label)).setText(item.getName());
((TextView) view.findViewById(R.id.item_id)).setText(item.getId());
ImageView image = (ImageView) view.findViewById(R.id.image_id);
Resources resources = this.getContext().getResources();
image.setImageDrawable(resources.getDrawable(R.drawable.ic_launcher));
Button btn = (Button) view.findViewById(R.id.button_id);
Button btn2 = (Button) view.findViewById(R.id.button_id_2);
Button btn3 = (Button) view.findViewById(R.id.button_id_3);
ol = new OnItemClickListener(position);
btn.setOnClickListener(ol);
btn.setTag(1);
btn2.setOnClickListener(ol);
btn2.setTag(2);
btn3.setOnClickListener(ol);
btn3.setTag(3);
return view;
}
ご覧のとおり、タグを使用してクリックされたボタンを特定し、OnItemClickListener
呼び出された位置からその位置を認識しています。
最善のアプローチと、これを適切に行う方法についてはわかりません。