2013-05-25 17 views
0

內容URI格式通常是這種格式ContentUri對id作爲字符串

content://provider/product/1 

能否在contenturi作出接受這樣的URI

content://provider/product/p1 

CAN ID是字符串? 我正在嘗試使用ContentUris.withAppendedId(contentUri,id)。這個ID似乎很長。

+1

我用Uri.withAppendedPath(uri,'p1')來創建uri。這會是問題嗎? – Thupten

回答

0

這個問題很可能是你定義你的UriMatcher的方式。

您可能正在爲該uri和表格使用模式匹配器,並以「#」結尾,因此它正在尋找一個數字。

只需添加與您已有的完全相同的其他匹配模式,但將「#」更改爲「*」,以便它也可以匹配字符串。

下面是我使用的一個示例,其中我的表具有_id列和device_id列。 device_id列具有NOT NULL和UNIQUE約束並保存了UUID。這兩列中的任何一列都可以用作行標識符。

sUriMatcher.addURI(AUTHORITY,DevicesTable.TABLE_NAME +「/#」,DEVICE); sUriMatcher.addURI(AUTHORITY,DevicesTable.TABLE_NAME +「/ *」,DEVICE);使用此功能,您可以調用Uri.withAppendedPath(uri,_id);或者使用Uri.withAppendedPath(uri,_id);或者使用Uri.withAppendedPath(uri,_id);或者使用Uri.withAppendedPath(uri,_id)。或URi.withAppendedPath(uri,uuid);匹配器會找到正確的表格。

只要確保將ContentProvider調整爲查詢任一情況的正確字段。