ContentUris是專門用來處理scheme為content的Uri
可以用來解析字尾的id, 或是新增id上去

這邊先解釋一下在Content provider內Uri的基本組成
<scheme>://<authority>/<path>/<id>

scheme: 代表的是資源的總類, 向是http, https, ftp等等, 這邊固定為content
authority: 這個就是package的名稱, 像是com.example
path: 資源所在的位置或資料夾, 如果是SQLite就是指所在的Table
id: 用來指到特定的資料, 在表格中就是第幾筆的意思

組合起來的簡單例子

content://com.example/table/2

static Uri.Builder appendId(Uri.Builder builder, long id)
把Id加到Uri.Builer後, 回傳一個加了Id的Uri.Builder

static long parseId(Uri contentUri)
回傳解析後的Uri結尾的id

static Uri withAppendedId(Uri contentUri, long id)
將id加到Uri後面, 然後回傳Uri

Uri uri = new Uri.Builder()
.scheme("content")
.authority("com.example")
.appendPath("table")
.build();

Log.d("TAG", uri.toString());

Uri uri_id = ContentUris.appendId(new Uri.Builder().scheme("content").authority("com.example").appendPath("table"), 3).build();;
Log.d("TAG", uri_id.toString());

Log.d("TAG", "id = " + ContentUris.parseId(uri_id));

Uri uri_id2 = ContentUris.withAppendedId(uri, 100);
Log.d("TAG", uri_id2.toString() );

 

1. 官網https://developer.android.com/reference/android/content/ContentUris.html

01.png

 

2. 宣告Uri並且使用

02.png

 

3. 結果如下

03.png  

文章標籤

Android ContentUris

全站熱搜

RX1226 發表在 痞客邦 留言(0) 人氣()