-1

我们在中为 Items(Rows) 点击监听器制作监听器ListView。如何知道,在特定行中,特定视图被点击?


R1 --> 文本视图1 | 文本视图2


R2 --> 文本视图1 | 文本视图2

我可以得到点击了哪一行。但我也想知道点击了该行的哪个视图。

4

3 回答 3

0

您可以将特定的点击处理程序添加到 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);
}
于 2013-11-08T08:41:46.930 回答
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...
     }

};
于 2013-11-08T08:42:35.527 回答
0

我这样做:

  1. 将 onClickListener 分配给可以点击的任何内容
  2. 我为其分配标签以识别 v.setTag(R.id.itemId, item.id);
  3. 在 onclick 我做:

    @Override
    public void onClick(View v) {
        final int id = (Integer) v.getTag(R.id.itemId);
    }
    
于 2013-11-08T08:42:43.610 回答