Ho un'applicazione che recupera annunci memorizzati come file xml su un server e carica il titolo e l'autore di ciascun annuncio in un oggetto ListView. Quello che devo anche memorizzare con ogni articolo è l'ID di ogni annuncio, ma non ho effettivamente bisogno di visualizzarlo. Ho pensato di archiviare l'ID nella mappa di hash che uso per riempire l'elenco e poi trovare l'ID associato con il titolo cliccato, ma penso che non sarebbe sicuro da usare poiché due annunci potrebbero avere lo stesso titolo (e autore e data) . Ho anche pensato di aggiungere un TextView invisibile a ciascun elemento per memorizzare l'ID, ma questo ha causato problemi di layout. Infine, ho cercato e trovato setTag() e getTag() che penso sarebbe perfetto per quello che voglio fare, ma non sono sicuro di come usarli con SimpleAdapter (sono relativamente nuovo a questo ...). Se l'idea TextView è quello che ho bisogno di fare (anche se ne dubito), qui è la disposizione che sto utilizzando per ogni voce:Allegare dati ID agli articoli listview
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="6dip"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<LinearLayout
android:orientation="horizontal"
android:id="@+id/items"
android:weightSum="100"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@android:id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="6dip"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_weight="85"/>
<LinearLayout
android:orientation="vertical"
android:id="@+id/itemCB"
android:layout_weight="15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center">
<CheckBox
android:id="@+id/cbSelected"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
E sto utilizzando la seguente scheda per riempire la lista:
for(int i = 0; i < ann.length; i++)
{
map = new HashMap<String, String>();
map.put("line1", ann[i].getTitle());
map.put("line2", "Posted by: " + ann[i].getAuthor() + "\n" + ann[i].date.toLongString());
list.add(map);
}
String[] from = { "line1", "line2"};
int[] to = { android.R.id.text1, android.R.id.text2};
SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.twoline_checkbox_id_listitem, from, to);
setListAdapter(adapter);
Grazie per qualsiasi aiuto!
Credo che qui è la risposta migliore per voi: http://stackoverflow.com/a/3051729/7379190 – AleX
Penso che [questa] (http : //stackoverflow.com/a/3051729/7379190) è la migliore risposta alla tua domanda. – AleX