Ho una personalizzazione ListView
. Questo ListView
contiene 1 Immagine e 6 TextView s. Per recuperare il valore ho creato un setOnItemClickListener(...)
. Ogni volta che clicco su ListView
come posso effettivamente recuperare tutti i dati dal 6 TextView s?setOnItemClickListener su ListView personalizzato
risposta
Se nel listener si ottiene il layout di root dell'articolo (ad esempio itemLayout
) e si danno alcuni identificativi alle visualizzazioni di testo, è possibile ottenerli con qualcosa come itemLayout.findViewById(R.id.textView1)
.
codice di esempio:
ListView list = (ListView) findViewById(R.id.listview);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Object listItem = list.getItemAtPosition(position);
}
});
Nel codice di esempio precedente, il listItem
dovrebbe contenere i dati selezionati per la textView
.
ragazzi non sono in grado di percepire il tocco anche se scrivo un brindisi dentro onItemClick non sta mostrando – abhishek
@abhishek, lo stesso problema con me anche –
Anch'io ho avuto lo stesso problema .. Se pensiamo logicamente po 'siamo in grado di ottenere la risposta .. Ha funzionato per me molto bene .. Spero u otterrà esso ..
listviewdemo.xml
<ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="30dp" android:paddingLeft="10dp" android:paddingRight="10dp" />
listviewcontent.xml
- nota cheTextView
-android:id="@+id/txtLstItem"
<LinearLayout android:id="@+id/listviewcontentlayout" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="horizontal"> <ImageView android:id="@+id/img1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="6dp" /> <LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="vertical"> <TextView android:id="@+id/txtLstItem" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="left" android:shadowColor="@android:color/black" android:shadowRadius="5" android:textColor="@android:color/white" /> </LinearLayout> <ImageView android:id="@+id/img2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="6dp" /> </LinearLayout>
ListViewActivity.java
- noti cheview.findViewById(R.id.txtLstItem)
- come impostare il valore aTextView
dasetText()
metodo che abbiamo ottenere il testo daTextView
diView
oggetto restituito dal metodoonItemClick
.OnItemClick()
restituisce la vista corrente.TextView v=(TextView) view.findViewById(R.id.txtLstItem); Toast.makeText(getApplicationContext(), "selected Item Name is "+v.getText(), Toast.LENGTH_LONG).show();**
Usando questa semplice logica che possiamo ottenere altri valori come
CheckBox
,RadioButton
,ImageView
eccListView List = (ListView) findViewById(R.id.listview); cursor = cr.query(CONTENT_URI,projection,null,null,null); adapter = new ListViewCursorAdapter(ListViewActivity.this, R.layout.listviewcontent, cursor, from, to); cursor.moveToFirst(); // Let activity manage the cursor startManagingCursor(cursor); List.setAdapter(adapter); List.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick (AdapterView <?> adapter, View view,int position, long arg){ // TODO Auto-generated method stub TextView v = (TextView) view.findViewById(R.id.txtLstItem); Toast.makeText(getApplicationContext(), "selected Item Name is " + v.getText(), Toast.LENGTH_LONG).show(); } } );
Ho lo stesso codice ma non funzionerà per me –
Se aiuta nessuno, ho scoperto che il problema era già avuto un androide : evento onClick nel mio file di layout (che ho gonfiato per le righe di ListView). Questo sostituiva l'evento onItemClick.
Se le risposte precedenti non funzionano, forse non è stato aggiunto il valore restituito nel metodo getItem nell'adattatore personalizzato vedere la domanda this e controllare la prima risposta.
- 1. setOnItemClickListener VS setOnItemSelectedListener in ListView.
- 2. ListView non attiva setOnLongClickListener, solo setOnItemClickListener
- 3. setOnItemClickListener di ListView per Android non chiamato
- 4. ListView setOnItemClickListener e setOnItemSelectedListener per memorizzare l'indice elemento selezionato
- 5. setOnItemClickListener non funziona
- 6. ListView personalizzato in Winforms?
- 7. Problema di background ListView personalizzato
- 8. ListView Item shadow + selettore personalizzato
- 9. Rimuovi elemento da listview personalizzato sul pulsante clic su
- 10. elemento selezionato su listview personalizzato con barra di azione contestuale
- 11. voce di elenco personalizzato per ListView Android
- 12. JavaFX 8 personalizzato ListView Cells è male
- 13. Android ListView personalizzato ripete selezione sfondo
- 14. Implementa ListView espandibile utilizzando l'adattatore personalizzato
- 15. Listview con adattatore personalizzato contenente CheckBoxes
- 16. Come impostare ListView personalizzato in Android Fraging?
- 17. ListView con layout riga personalizzato - Android
- 18. come implementare un listener di clic lungo su un listview
- 19. Disattiva ripple su ListView
- 20. Android ListView personalizzato con ImageButton non ottiene lo stato attivo
- 21. Ottieni il valore dell'articolo su OnItemClick Listview
- 22. Eliminazione di elementi da un ListView utilizzando un BaseAdapter personalizzato
- 23. Come implementare il filtro per BaseAdapter personalizzato con ListView?
- 24. Centratura layout Android in RelativeLayout per ListView personalizzato
- 25. ListView personalizzato Android impossibile fare clic sugli elementi
- 26. assicurare visibile su listview android?
- 27. Le animateLayoutChanges funzionano su ListView?
- 28. problema Prestazioni su personalizzato carattere TextView
- 29. Android: Ottieni l'oggetto listview dal pulsante su cui si fa clic nell'elenco personalizzato
- 30. Salvare uno stato di istanza di ListView personalizzato?
Grazie mille pietre. – kangalert
@kangalert prego.ricorda di contrassegnare le risposte accettate (fai clic sul segno di spunta accanto alla risposta), per far sapere che è una soluzione funzionante. si alza anche il tuo e reputazione di rispondente :) – bigstones