móviles - manual de programacion android pdf
Vista de lista de Android: obtener índice de datos del elemento visible (3)
Es muy fácil. Solo use ListView.getFirstVisiblePosition() + indexYouWant
. Por ejemplo, para obtener la posición en el adaptador del segundo niño que se muestra en ListView
, simplemente use getFirstVisiblePosition() + 1
.
No hay necesidad de todas las cosas de miedo que se muestran en la respuesta anterior :)
Tengo un ListView
Android creado con un SimpleAdapter
que tiene más elementos que caben en la pantalla. Después de que la lista se haya desplazado, necesito obtener el puesto en el modelo de datos del primer elemento visible de la lista.
Básicamente quiero una función como: listView.getChildAt(0).getPositionInDataModel()
.
Adapter
tiene algunas funciones, como getItemId(position)
que parecía útil; sin embargo, la implementación de SimpleAdapter
simplemente devuelve la posición aprobada, no una identificación de fila como esperaba.
Una solución de fuerza bruta sería obtener la Vista en el índice 0 y compararla con la vista de cada elemento del adaptador. Sin embargo, no parece haber una manera fácil de obtener la vista para una posición particular del adaptador.
Alguien tiene alguna idea?
Simplemente use getPositionForView(View)
( vea la documentación ). La principal ventaja de este método es que también funciona con las View
descendientes de un elemento.
listView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> parent,View view, int pos, long id)
{
AisleId= parent.getSelectedItemId();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
En este, obtendremos el elemento de la lista Id parent.getSelectedItemId ();