在ListView中获得位置

bri*_*ian 8 android listview

我使用ListView来显示几个项目.我的row.xml如下:

<TextView android:text="text"
android:id="@+id/tvViewRow"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
<Button android:text="Click me!"
android:id="@+id/BtnToClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="myClick">
</Button>
Run Code Online (Sandbox Code Playgroud)

我在Activity中定义myClick如下:

public void myClick (View v) {
LinearLayout vwParentRow = (LinearLayout)v.getParent();
//How to get the position
}
Run Code Online (Sandbox Code Playgroud)

如何知道点击它的位置?该位置与onListItemClick的方法相同.

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
}
Run Code Online (Sandbox Code Playgroud)

小智 35

尝试

public void DetailClick(View v) {
ListView lv = getListView();
int position = lv.getPositionForView(v);
}
Run Code Online (Sandbox Code Playgroud)


Sai*_*esh 5

你可以这样试试.

第1步:在您的自定义适配器中

@Override
public view getView(int position, View convertView, ViewGroup parent){
.......//Perform your logic
    convertView.findViewById(R.id.BtnToClick).setTag(position);
    return convertView;
}
Run Code Online (Sandbox Code Playgroud)

第2步:在onclick监听器中

 public void myClick (View v) {
     LinearLayout vwParentRow = (LinearLayout)v.getParent();
     position=(Integer) v.getTag();
  }
Run Code Online (Sandbox Code Playgroud)