2012-07-14 1 views

Répondre

63

ContentUris.parseId() convertit le dernier segment de chemin en un long.

+5

ContentUris.parseId() est la réponse Google « officielle » sur la façon de récupérer des ID d'enregistrement, voir à la fin de [Insertion de données] (http://developer.android.com/guide/topics/providers/ content-provider-basics.html # Insertion) section. Vous pouvez également utiliser uri.getLastPathSegment() pour obtenir une valeur de chaîne, mais vous devez utiliser Long.valueOf (stringId) au lieu de Integer.valueOf (stringId) car les ID de base de données ont de longues valeurs. – Y2i

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

est-ce que uri.getPathSegments(). Get (1) donne aussi le même –

+0

id sont 'long' – weston

0

utilisation ContentUris.parseId (uri) Cette déclaration Transforme le dernier segment de chemin vers un long.

Documentation Lire en here

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

Ce qui précède est correct. Mais ce que j'ai fait, c'est que j'ai passé uri comme Events.CONTENT_URI.getLastPathSegment() qui ne donne pas l'identifiant. Parce que nous devons passer l'URI qui est retourné par insert() comme ci-dessous. Peut être utile à quelqu'un comme moi!

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