use*_*953 2 android android-contentresolver android-contentprovider
我是内容提供商的新手,我一直在参考这个文档,以便了解和创建自定义内容提供商.
我在内容提供程序的内容描述符类中有这样的路径:
public static final String PATH = "tbl_reco_index_contents";
public static final String PATH_FOR_ID = "tbl_reco_index_contents/*";
Run Code Online (Sandbox Code Playgroud)
使用下面的代码,我可以从我需要的列中获取数据,而不会出现任何问题:
public static final String AUTHORITY = "com.nyk.launcherprovider";
private static final Uri BASE_URI = Uri.parse("content://" + AUTHORITY);
public static final String PATH = "tbl_reco_index_contents";
public static final Uri CONTENT_URI = BASE_URI.buildUpon().appendPath(PATH).build();
cur = this.getContentResolver().query(CONTENT_URI, new String[]{
"reco_index_content_name",
"reco_index_content_url"
}, null, null, null);
cur.moveToFirst();
for(int i=0;i<cur.getCount();i++){
System.out.println("Name is:"+cur.getString(10));
System.out.println("URL is:"+cur.getString(11));
cur.moveToNext();
}
Run Code Online (Sandbox Code Playgroud)
我不知道,我如何使用where条件获取数据.即; 如果我需要添加一个条件WHERE user_profile_number = 2 and pkg_name = 'abc',我如何处理上面的代码.
任何帮助深表感谢.
当您使用bellow语句时,它会在内容提供程序中调用PATH
Cursor cursor = getContentResolver().query(YOUR_URI, null, "user_profile_number = ? AND pkg_name = ? ", new String[]{"2", "abc"}, null);
Run Code Online (Sandbox Code Playgroud)
如果你想根据id调用数据,这意味着你想调用PATH_FOR_ID 然后使用
Cursor cursor = getContentResolver().query(ContentUris.withAppendedId(CONTENT_URI, id), null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4104 次 |
| 最近记录: |