ListView を使って LINE みたいな感じのプロフ画+メッセージの画面を作った時に、
プロフ画を tap したことを検出したい
OnItemClickListener だと Item 全体を検出してしまう
ListView をいろいろすればとれるとのことだったけどあんまり手を加えずなんとかしたかった
Adapter で item が tap されたときに performItemClick を呼べば良さそう
public View getView(int pos, View view, final ViewGroup parent) {
item.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((ListView) parent).performItemClick(v, pos, R.id.itemId);
}
});
}
listView.setOnItemClickListener(new ItemClickListener() {
@Override
public void onItemClick(ViewGroup parent, View view, int pos, long id) {
Message item = messageListAdapter.getItem(pos);
switch (view.getId()) {
case R.id.itemId:
Toast.makeText(this, "tap!!", Toast.LENGTH_LONG).show();
break;
}
}
});
これでとれた