Ich arbeite an einer kleinen App, die mir hilft, meine Ernährung zu verfolgen.Jetzt baue ich ein Layout mit einem Adapter.Für diesen Zweck verwende ich einen SimpleCursorAdapter, weil alle benötigten Daten aus meiner Datenbank kommt.Alles ging gut außer einem Ding:Wie IDs auf programmatisch erstellten Kontrollkästchen festgelegt werden?
Alle Kontrollkästchen hat die gleiche ID. Also kann ich nicht jeden einzelnen überprüfen. Es gibt eine Lösung, ich weiß, wie es gelöst werden kann, aber in diesem Fall kann ich keine XML-Datei verwenden, um IDs zu generieren, weil ich nicht weiß, wie viele Kontrollkästchen das nächste Mal, wenn ich die App ausführen werde.
Hier ist mein Code:
public void getIdAndDate()
{
db = new DATABASE(this);
SQLiteDatabase sqldb = db.getReadableDatabase();
String[] Columns = {"_id", "date"};
int[] toViews = {R.id.entry_id, R.id.entry_date};
Cursor cursor1;
cursor1 = sqldb.query(db.TABLE_DAILY_CONSUMPTION, Columns, null, null, null, null, null);
numRows = cursor1.getCount();
int id[] = new int[numRows];
String date[] = new String[numRows];
for(int i = 0; i<numRows; i++)
{
cursor1.moveToNext();
id[i] = cursor1.getInt(0);
date[i] = cursor1.getString(1);
}
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.layout_entry, cursor1, Columns, toViews, 0);
entries.setAdapter(adapter);
}
Und das ist mein Layout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/entry_id"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="20sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/entry_date"
android:layout_gravity="center_horizontal"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textSize="20sp"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/entry_selection"
android:layout_gravity="right"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
/>
ich wirklich versuchen, herauszufinden, wie ich das Problem lösen kann, aber ich kann nicht einmal vorstellen, welche Möglichkeiten ich habe.
Sie können 'setId' einfach zu Ihrer' CheckBox' Ansicht mit einem ganzzahligen Wert Ihrer Wahl aufrufen. Machst du das nur jetzt? – Shaishav
http://stackoverflow.com/questions/5939392/android-checkable-listview und andere Ressourcen sind von einer Google-Suche auf "Android Listview Checkable" oder "Android Listview Checkbox" verfügbar. – CommonsWare