2012-07-14 14 views

Antwort

63

ContentUris.parseId() wandelt das letzte Pfadsegment in ein langes um.

+5

ContentUris.parseId() ist "offizielle" Google Antwort auf wie Datensatz-IDs abzurufen, finden Sie am Ende des [Einfügen von Daten] (http://developer.android.com/guide/topics/providers/ content-provider-basics.html # Einfügen) Abschnitt. Sie können auch uri.getLastPathSegment() verwenden, um einen Zeichenfolgenwert abzurufen, aber Sie müssen Long.valueOf (stringId) anstelle von Integer.valueOf (stringId) verwenden, da Datenbank-IDs lange Werte haben. – Y2i

11
long id = Long.valueOf(uri.getLastPathSegment()); 
+0

macht uri.getPathSegments(). Get (1) gibt auch die gleichen –

+0

IDs sind 'long' – weston

0

Verwenden ContentUris.parseId (uri) Diese Erklärung wird das letzte Wegsegment zu einem langen umwandelt.

lesen Dokumentation in here

0
long rowId = Long.valueOf(uri.getLastPathSegment()); 

Die oben ist richtig. Aber was ich getan habe ist, ich habe uri wie Events.CONTENT_URI.getLastPathSegment() übergeben, die die ID nicht gibt. Weil wir den URI übergeben müssen, der von insert() wie folgt zurückgegeben wird. Kann für jemanden wie mich hilfreich sein!

Uri uri = getContentResolver().insert(Events.CONTENT_URI, values); 
long rowId = Long.valueOf(uri.getLastPathSegment()); 
Verwandte Themen