web-dev-qa-db-fra.com

Obtenir l'ID d'un nouvel enregistrement inséré dans une base de données à partir de l'URI renvoyé

Lorsque vous insérez un nouvel élément dans une base de données comme celle-ci 

Uri uri = getContentResolver().insert(Tournaments.CONTENT_URI, values); 

y a-t-il un moyen d'obtenir l'identifiant de l'URI qui est renvoyé afin que je n'ai pas à lancer une requête pour obtenir l'identifiant puisqu'il est déjà dans l'URI renvoyé?

31
tyczj

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

64
Y2i
long id = Long.valueOf(uri.getLastPathSegment());
12
Alex Lockwood

Utilisez ContentUris.parseId (uri) Cette instruction convertit le dernier segment de chemin en un long.

Lire la documentation dans ici

1
hosseinAmini
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());
0
Swathi