行ごとに 1 つのボタンを持つ ListView があります。行がクリックされたときにデータを取得する必要がある場合は、onItemClickListener 内で次のことを行うのは非常に簡単です。
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
CustomType type = (CustomType) arg0.getItemAtPosition(arg2); //get data related to position arg2 item
}
});
実際には、行自体ではなく、ListView の行のボタンがクリックされたときに、データ (つまり、CustomType オブジェクト) を取得する必要があります。OnClickListener にはパラメーターとしてのようなものがないのでAdapterView<?>
(明らかに)、これをどのように処理できるか知りたいです。
これまでのところ、リストビューであるボタンの親を取得し、クリックされたボタンがどの行の位置にあるかを何らかの方法で取得してから、次のようなものを呼び出しました
myAdapter.getItem(position);
。こっち。