如何在ListView中点击“View”而不是“Complete Row”:: android

时间:2013-11-08 08:36:23

标签: android

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


R1 - > TextView1 | TextView2


R2 - > TextView1 | TextView2

我可以点击哪一行。但我也想知道点击哪一行视图。

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分: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...
     }

};

答案 2 :(得分: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);
    }