我们在中为 Items(Rows) 点击监听器制作监听器ListView
。如何知道,在特定行中,特定视图被点击?
R1 --> 文本视图1 | 文本视图2
R2 --> 文本视图1 | 文本视图2
我可以得到点击了哪一行。但我也想知道点击了该行的哪个视图。
我们在中为 Items(Rows) 点击监听器制作监听器ListView
。如何知道,在特定行中,特定视图被点击?
我可以得到点击了哪一行。但我也想知道点击了该行的哪个视图。
您可以将特定的点击处理程序添加到 textViews:
<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);
}
您需要将位置设置为标签到textView,然后onClick您可以接收它的标签。
所以基本上你在适配器的 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...
}
};
我这样做:
在 onclick 我做:
@Override
public void onClick(View v) {
final int id = (Integer) v.getTag(R.id.itemId);
}