2010-10-25 13 views
5

Sto sviluppando un'applicazione Android.Identifica l'elemento selezionato nel metodo ListActivity onListItemClick

Ho diversi oggetti caricati su un ListActivity. Voglio sapere l'elemento cliccato sull'evento onListItemClick.

Vedo il metodo onListItemClick ha un parametro chiamato id. Come posso configurare questo ID?

I miei oggetti sono identificati da un ID, come posso aggiungere questo ID a listItem?

Grazie.

risposta

7

Qual è la fonte dei dati della lista? Se si utilizza un cursore, l'ID passato in onListItemClick(ListView l, View v, int position, long id) sarà automaticamente l'id della riga del cursore.

+0

Non sto usando un cursore. Sto usando un array di stringhe. – VansFannel

+0

Quindi, supponendo che l'array contenga l'ID in uno dei suoi indici, accedere alla matrice usando la variabile posizione. Ad esempio, myArray [posizione] [0] (se il tuo ID è @ indice 0 dell'array) – Dave

+0

Capisci cosa intendo? I dati di origine devono avere l'ID oggetto presente per cominciare, che si tratti di una stringa [] o di una lista di array, o di un cursore o di qualsiasi altra fonte. – Dave

2

Utilizzare quanto segue;

listView.getItemAtPosition(position); 

Dove listView è il nome della visualizzazione elenco.

+0

No, non funziona per me. Ad esempio, ho messo l'oggetto con id = 1 sulla posizione 12. Non voglio conoscere la posizione, voglio conoscere l'id dall'oggetto su una posizione specifica. – VansFannel

8

se SectionObj è l'oggetto a cui si desidera accedere in seguito, impostarlo nell'adattatore quando si imposta l'origine.

ArrayList<SectionObj> li 

ArrayAdapter<SectionObj> adapter=new ArrayAdapter<SectionObj>(getApplicationContext(),android.R.layout.simple_list_item_1, li); 
    setListAdapter(adapter); 

poi nel ur metodo listener ..

protected void onListItemClick(ListView l, View v, int position, long id) { 

SectionObj o=(SectionObj)getListView().getItemAtPosition(position); 

}

Problemi correlati