Posición incorrecta de elementos después de usar un customAdapter
Este es el tutorial que he utilizado: http://www.tutorialsbuzz.com/2014/08/filter-custom-listviewbaseadapter.html
Y le implementé un onItemClickListener
- Cambiar el texto de un botón dentro de un ListView en Android
- Animate listView childs sólo una vez que aparecen
- Lista dinámica que agrega "cargar más artículos" al final del desplazamiento
- Práctica recomendada para eliminar asincrónicamente un elemento ListView / RecyclerView
- Listas personalizadas de Android
OnItemClickListener myListViewClicked = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String member_name = countrylist.get(position).getName(); // get Internet status isInternetPresent = cd.isConnectingToInternet(); if (isInternetPresent) { if (member_name.equals("aa")) { Intent i = new Intent(Listview.this, Start.class); startActivity(i); displayInterstitial(); } else { prName.show(); } } }; lv.setOnItemClickListener(myListViewClicked); }
Así, supongamos que mi lista original es
Aa BB Ca DD
Y escribo 'a' en el filtro, entonces la lista se convierte en
Aa Ca
Pero cuando hago clic en Ca, me redireccionan en BB con acciones adicionales que dependen de .equal para cada elemento de la lista.
Mi código para mi lista y el adaptador de encargo es igual que en el tutrial, pero el oyente del onclickitem, lo he implemeneted, así que pienso im falta algo en él. Traté de buscar y encontré pareja de la misma quesiton, pero ninguno respondió, cada uno con auto-respuesta que era diferente a la mía y no podía aplicarlo a mi adaptador cusotm.
- Cómo arrastrar el elemento de lista desplegable a otro ListView
- ¿Cómo puedo usar layout_weight en RecyclerView o Vista de elemento ListView para que los elementos de igual altura llenen el espacio disponible en la pantalla?
- ANDROID: divide la pantalla en 2 partes iguales con 2 listas
- Elementos en Fragmento no funcionan después de volver a agregar el mismo fragmento
- Aceleración de hardware en ListView
- Cómo agregar una vista dinámica a un elemento ListView en tiempo de ejecución?
- Anulación de Android ListView onItemClick haciendo que el elemento se seleccione (marcado)
- La altura de ListView llena toda la pantalla, aunque se define como wrap_content
Es principalmente porque su acceso al conjunto de datos directamente.
String member_name = countrylist.get(position).getName();
Durante el filtrado es probable que instanciar y la nueva Collection
reemplaza la referencia que está utilizando en su Activity
.
Utilizar
String member_name = ((Country)parent.getItemAtPosition(position)).getName();
Y funcionará.
parent.getItemAtPosition(position)
accede al conjunto de datos subyacente en su Adapter
, si su getItem
se implementa correctamente
Puedes usar
String memberName=(YourObject)parent.getAdapter().get(postion).getName;
es fácil.