如何在列表视图中点击"View"而不是"Complete Row" :: 安卓



我们让项目(行)的侦听器在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);
}

我是这样做的:

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

    @Override
    public void onClick(View v) {
        final int id = (Integer) v.getTag(R.id.itemId);
    }
    

最新更新