我们让项目(行)的侦听器在ListView
中单击侦听器。如何知道在特定行中点击了特定视图?
R1 --> 文本视图1 |文本视图2
R2 --> 文本视图1 |文本视图2
我可以得到点击的行。 但我也想知道点击了该行的哪个视图。
您需要
将位置设置为标签到textView,然后单击可以接收其标签。
所以基本上你在适配器的getView方法上设置了textView的工作人员
textView.setTag(position);
textView.setOnClickListener(listener);
然后你会有这样的点击监听器
private OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
int position = Integer.parseInt(v.getTag().toString());
// Do whatever you like...
}
};
您可以向 textView 添加特定的单击处理程序:
<TextView
android:onClick="clickHandler">
然后在您的活动中:
public void clickHandler(View v) {
// obtain parent row
LinearLayout parentView = (LinearLayout) v.getParent();
// with the parentView you can get all other views as well:
TextView textView1 = (TextView) parentRow.getChildAt(0);
}
我是这样做的:
- 将 onClickListener 分配给可以单击的任何内容
- 我给它分配标签来识别v.setTag(R.id.itemId,item.id);
-
在点击中,我做:
@Override public void onClick(View v) { final int id = (Integer) v.getTag(R.id.itemId); }