Android 如何获得;“视图”;在ListView中单击“不”;完整行“::安卓

Android 如何获得;“视图”;在ListView中单击“不”;完整行“::安卓,android,Android,我们为项目(行)创建侦听器,在ListView中单击侦听器。如何知道在特定行中单击了特定视图 R1-->文本视图1 |文本视图2 R2-->文本视图1 |文本视图2 我可以获得单击的行。但我还想知道该行的哪个视图被单击。您可以向文本视图添加特定的单击处理程序: <TextView android:onClick="clickHandler"> 您需要将POSITIONAS tag设置为textView,然后单击可以接收其标记 所以基本上,您可以在适配器的getView方

我们为项目(行)创建侦听器,在
ListView
中单击侦听器。如何知道在特定行中单击了特定视图


R1-->文本视图1 |文本视图2
R2-->文本视图1 |文本视图2
我可以获得单击的行。但我还想知道该行的哪个视图被单击。

您可以向文本视图添加特定的单击处理程序:

<TextView
    android:onClick="clickHandler">

您需要将POSITIONAS tag设置为textView,然后单击可以接收其标记

所以基本上,您可以在适配器的getView方法上设置textView的staff

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...
     }

};
我是这样做的:

  • 将onClickListener分配给可以单击的任何对象
  • 我将标签分配给它以标识v.setTag(R.id.itemId,item.id)
  • 在onclick中,我会:

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