2012-02-24 52 views
8

Tengo una lista Ver con algunos artículos.Android ListView y OnClickListener: Cómo obtener el elemento seleccionado

Me gustaría obtener de mi onClickListener el nombre (Cadena) del elemento seleccionado.

Sé cómo obtener la posición seleccionada pero cómo encontrar la cadena de este elemento?

Aquí está mi el detector de clics:

journalNames.setOnItemClickListener(new OnItemClickListener() { 
public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
    { 

    }}); 

Mi vista de lista se rellena con alguna consulta de la base de datos.

Gracias.

Respuesta

17

¿Qué pasa,

journalNames.setOnItemClickListener(new OnItemClickListener() { 
public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
    { 
     String selectedFromList = (journalNames.getItemAtPosition(position).getString()); 
    }}); 
+0

Creo que el getItemAtPosition() no devuelve un String –

+1

Increíble, gran respuesta. Eso es exactamente lo que necesitaba. Muchas gracias. Solo agregue .getString() al final. –

+1

se puede usar así, String selectedFromList = (String) journalNames.getItemAtPosition (position); o String selectedFromList = (journalNames.getItemAtPosition (position) .toString()); – user370305

8

lo puedes encontrar ya sea en la vista o en la matriz. En eclipse solo escribe vista. y vea qué métodos obtiene después de escribir. (punto). Creo que esto es lo mejor

parent.getAdapter().getItem(position); 
+1

Dado que su adaptador/lista puede contener más información (por ejemplo, Ids) que la que se muestra dentro de la vista de elementos de la lista, yo voto a favor de esta respuesta. – David

+0

¡Debe ser así! Siempre accedí directamente a la lista (como un campo en clase) pero me equivoqué. A través del padre, el oyente queda encapsulado. Incluso tuve que pasar de una lista a otra, ¡el oyente puede permanecer sin cambios! – user1592714

Cuestiones relacionadas