Próbuję powiązać dane z mojego SQLiteDatabase
z ListView
. Obecnie używam SimpleCursorAdapter
do wypełnienia mojego ListView
. Niestety nie działa to przy ustawianiu sprawdzanego atrybutu CheckBox.Android: Wiązanie danych z bazy danych do CheckBox w ListView?
Oto, jak to teraz robię; zamiast zmieniać status sprawdzania CheckBox, adapter wpisuje wartość do argumentu tekstowego, więc wartość jest wyświetlana po prawej stronie CheckBox jako tekst.
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: Pole w bazie danych jest oczywiście typu boolean i próbowałem również przypisać identyfikator do sprawdzonej pole do wypełnienia wartości.
Czy możesz dać mi przykład, ponieważ jestem naprawdę nowy w programowaniu Androida i nie widziałem jeszcze czegoś takiego? – svens
Jasne, lemie coś wykopcie, a ja to opublikuję. – MattC
Dzięki! Zadziałało. Wydaje się, że nie ma funkcji getBoolean(); teraz używam cbListCheck.setChecked ((cur.getInt (cur.getColumnIndex (Datenbank.DB_STATE)) == 0? False: true)); który załatwia sprawę. – svens