Sto tentando di collegare i dati dal mio SQLiteDatabase
a un ListView
. Attualmente sto usando un SimpleCursorAdapter
per compilare il mio ListView
. Sfortunatamente questo non sembra funzionare con l'impostazione dell'attributo checked di CheckBox.Android: collegamento di dati da un database a un CheckBox in un controllo ListView?
Ecco come lo faccio ora; invece di modificare lo stato controllato del CheckBox, l'adattatore sta inserendo il valore nell'argomento di testo, quindi il valore viene visualizzato a destra del CheckBox come testo.
Java:
setListAdapter(new SimpleCursorAdapter(this,
R.layout.mylist,
data,
new String[] { Datenbank.DB_STATE, Datenbank.DB_NAME },
new int[] { R.id.list_checkbox, R.id.list_text }
));
mylist.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<CheckBox android:text=""
android:id="@+id/list_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
></CheckBox>
<TextView android:text=""
android:id="@+id/list_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
></TextView>
</LinearLayout>
Edit: Il campo del database è naturalmente di tipo booleano e ho anche cercato di assegnare un ID al controllato campo per riempire il valore.
Potresti darmi un esempio, perché sono davvero nuovo nella programmazione Android e non ho ancora visto qualcosa di simile? – svens
Certo, dimmi qualcosa e lo posterò. – MattC
Grazie !! Ha funzionato. Sembra che non ci sia la funzione getBoolean() ;-) .. Sto usando cbListCheck.setChecked ((cur.getInt (cur.getColumnIndex (Datenbank.DB_STATE)) == 0? False: true)); che fa il trucco. – svens