Obtener posición en ListView
Utilizo ListView para mostrar varios elementos. Mi row.xml como sigue:
<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>
Y defino myClick en Activity como se muestra a continuación:
- ¿Por qué los elementos de ListView no crecen para envolver su contenido?
- ListView onclick va a una nueva actividad
- Android ListView Ir a la posición del cursor
- ¿Cómo implementar ExpandableListview multinivel en Android?
- ¿Cómo quitar dinámicamente los elementos de ListView en un clic de botón?
public void myClick (View v) { LinearLayout vwParentRow = (LinearLayout)v.getParent(); //How to get the position }
¿Cómo saber la posición que se debe hacer clic en el botón? La posición significa igual que el método onListItemClick's.
@Override protected void onListItemClick(ListView l, View v, int position, long id) { }
- Android ListView :: setItemChecked no funciona
- Android: Cómo configurar el evento onClick para el botón en el elemento de lista de ListView
- Preseleccionar elementos en listView Android
- Saltar un getView en Android
- ListView onItemLongClickListener no impide que los grifos de enlace
- ListSelector en ListView no funciona
- simple_list_item_1 no se puede resolver o no es un campo
- La vista de texto no se desplaza dentro de la lista personalizada
Tratar
public void DetailClick(View v) { ListView lv = getListView(); int position = lv.getPositionForView(v); }
Puedes intentarlo así.
Paso 1: En su adaptador personalizado
@Override public view getView(int position, View convertView, ViewGroup parent){ .......//Perform your logic convertView.findViewById(R.id.BtnToClick).setTag(position); return convertView; }
Paso 2: En el oyente de onclick
public void myClick (View v) { LinearLayout vwParentRow = (LinearLayout)v.getParent(); position=(Integer) v.getTag(); }
También debe leer la documentación de ListView y tal vez incluso echar un vistazo al tutorial que está disponible.
Conozca su documentación.
Sí, la posición en el onListItemClick es la misma que la posición del elemento pulsado en la lista.
Si entiendo su pregunta correctamente, tiene un botón en cada fila de un ListView
, y desea saber qué fila recibió el clic de botón. ¿Cómo estás haciendo un setOnClickListener()
en el botón? La razón por la que pido esto es – si está configurando el OnClickListener
para cada botón, ya sabes la posición de ese botón.