34

このようなデータベースに新しいアイテムを挿入すると

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

返されたURIからIDを取得する方法はありますか?そのため、IDを取得するためにクエリを実行する必要はありません。これは、すでに返されたURIに含まれているためです。

4

4 に答える 4

69

ContentUris.parseId()は、最後のパスセグメントをlongに変換します。

于 2012-07-14T23:13:03.750 に答える
12
long id = Long.valueOf(uri.getLastPathSegment());
于 2012-07-14T23:18:48.370 に答える
1

ContentUris.parseId(uri)を使用します。このステートメントは、最後のパスセグメントをlongに変換します。

ここでドキュメントを読む

于 2016-06-29T11:03:57.690 に答える
0
long rowId = Long.valueOf(uri.getLastPathSegment());

上記は正しいです。しかし、私がしたことは、IDを与えないEvents.CONTENT_URI.getLastPathSegment()のようなURIを渡したことです。以下のようにinsert()によって返されるURIを渡さなければならないからです。私のような人に役立つかもしれません!

Uri uri = getContentResolver().insert(Events.CONTENT_URI, values); 
long rowId = Long.valueOf(uri.getLastPathSegment());
于 2018-01-09T10:13:45.983 に答える