2013-07-03 11 views
5

Ich versuche, eine Android-Anwendung, die identifizieren, wie viel Zeit für eine Aufgabe abgeschlossen ist, zu machen. Ich habe Vogellas Tutorial gefolgt, insbesondere diesen Teil http://www.vogella.com/articles/AndroidSQLite/article.html#todo, um einen Inhaltsanbieter und eine Datenbank zu erstellen. Es füllt eine Listenansicht mit zwei Dingen, dem Namen der Aufgabe und der Anzahl der verbleibenden Tage (letztere wird berechnet, wenn der Benutzer sein Enddatum in einer anderen Aktivität auswählt). Meine App berechnet das aktuelle Datum und subtrahiert es vom Enddatum und speichert, wie viele Tage in der Datenbank verbleiben. Das Problem ist, dass dies nur einmal gespeichert wird. In drei Tagen werden noch 4 Tage vergehen. Ich möchte, dass die App überprüft, wie viele Tage bei jedem Start des Clients verbleiben (aktuelles Datum prüfen, vom Enddatum subtrahieren und diese Spalte in der Datenbank aktualisieren). Das Problem ist, ich bin nicht sicher, wie es geht. Wenn mir jemand eine Anleitung geben könnte, würde ich es begrüßen.Android Content Provider aktualisieren bestimmte Spalten

Antwort

17

die Berechnung tun tun dann getContentResolver().update(uri,values,selection,selectionArgs);

EDIT:

so aktualisieren, nur mit den Werten

ContentValues values = new ContentValues(); 
values.put(HabitTable.TIME); //whatever column you want to update, I dont know the name of it 

...//any other values you want to update too 

getContentResolver().update(HabitTable.CONTENT_URI,values,HabitTable.ID+"=?",new String[] {String.valueOf(id)}); //id is the id of the row you wan to update 

offensichtlich müssen Sie Sachen mit den richtigen Spaltennamen

+0

Wie ersetzen Tue ich das für jede Id? Ich weiß nicht, welchen Code für den Zugriff auf jede ID in der Liste eingeben. Ich denke, ich möchte sagen, dass ich die Syntax nicht kenne, um den Cursor aufzufordern, jede ID in der Datenbank abzurufen und ihre Enddaten abzurufen. – user2525981

+0

verwenden Sie die 'selection' und die' selectionArgs', um sie zu bestimmen, wohin sie gehen sollen. Lesen Sie die Informationen zur Verwendung von Contentprovidern in der Dokumentation http://developer.android.com/guide/topics/providers/content-provider-basics.html#Modifications – tyczj

+0

Vielen Dank, ich werde es überprüfen. Danke für die schnellen Antworten. – user2525981

Verwandte Themen