2013-08-01 11 views
12

Ho qualche problema qui. Sembra semplice e continuo a cercare la sua soluzione. Sfortunatamente, non posso trovare nulla. Questo è il mio problema .... Quello che sto cercando di fare è ottenere la stringa mostrata in listview da un metodo click su elemento.Come recuperare la stringa cliccata da un listview utilizzando OnItemClick?

Questo è il mio ListView:

- lol 
- hi 
- waw 

quando clicco "lol" voglio ottenere il "lol" stringa .....

Cosa dovrei mettere nel mio codice qui? :

lv = (ListView) findViewById(R.id.list_view); 
lv.setOnItemClickListener(new OnItemClickListener() 
{ 
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) 
{ 
    // Intent newI = new Intent(this,PDetail.class); 
    Intent newI = new Intent (Create.this, PDetail.class); 
    //String sd = ((() arg1).getText()).toString(); 
    //newI.putExtra("x", arg2); 
    startActivity (newI); 
    // db.getList(arg3); 

}}); 
+0

Si consiglia di inviare il codice che popola in realtà il ListView – fiddler

+0

Cosa tipo di adattatori stai usando? è un adattatore personalizzato –

+0

so già come farlo ..... @ user2012, njzk2, karan23 già mi danno la risposta di cosa ho bisogno. Ma grazie per la tua attenzione –

risposta

25
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) 
    { 
     String data=(String)arg0.getItemAtPosition(arg2); 


    }}); 

data contiene i dati del tuo posizione cliccata. Fai quello che vuoi fare con quello.

+1

avrò molti input .... non solo quel tre. Non posso definirli così uno per uno ..... ho bisogno di qualcosa di più flexibel e universale –

+0

Questa non è una soluzione ... –

+1

@CharlesLynch: vedi la mia risposta modificata. –

2

La arg1 parametro del vostro ascoltatore è vista dell'elemento cliccato.

Supponendo che i prodotti a tua ListView sono TextViews si può provare:

String itemText = ((TextView) arg1).getText(); 
+0

Come posso farlo ???? non ho alcun textview ... –

1

uso String val = (String) arg0.getItemAtPosition (arg2)

+0

grazie per la risposta .. l'ho davvero apprezzato –

4

arg0 è il vostro AdapterView, tipicamente un ListView. arg2 è la posizione nello ListView. È possibile ottenere gli elementi dalla Adapter:

Object item = arg0.getItemAtPosition(arg2); 

A seconda del tipo di oggetto nel adattatore, una soluzione banale è:

String value = item.toString(); 
+0

Grazie, ho apprezzato la tua risposta. –

Problemi correlati