2012-07-14 15 views

Odpowiedz

63

konwertuje ostatni segment ścieżki na długi.

+5

ContentUris.parseId() jest „oficjalna” Google odpowiedź, w jaki sposób odzyskać rekord identyfikatory, patrz na końcu [Wstawianie danych] (http://developer.android.com/guide/topics/providers/ content-provider-basics.html # Wstawianie). Możesz także użyć uri.getLastPathSegment(), aby uzyskać wartość ciągu, ale musisz użyć Long.valueOf (stringId) zamiast Integer.valueOf (stringId), ponieważ identyfikatory bazy danych mają długie wartości. – Y2i

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

robi uri.getPathSegments(). Get (1) również daje ten sam identyfikator –

+0

id są "długie" – weston

0

Zastosowanie ContentUris.parseId (URI) To stwierdzenie będzie Przekształca ostatni segment ścieżki na długo.

Czytaj Dokumentacja w here

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

powyższe jest prawidłowe. Ale to, co zrobiłem, przekazałem uri jak Events.CONTENT_URI.getLastPathSegment(), która nie nadaje id. Ponieważ musimy przekazać URI, który jest zwracany przez insert() jak poniżej. Może być pomocna dla kogoś takiego jak ja!

Uri uri = getContentResolver().insert(Events.CONTENT_URI, values); 
long rowId = Long.valueOf(uri.getLastPathSegment()); 
Powiązane problemy