Android 应用程序之间数据共享—ContentResolver
2010-08-14 00:27:00 来源:WEB开发网D:如果URI中包含,表示需要获取的记录的ID;如果没有ID,就表示返回全部;
由于URI通常比较长,而且有时候容易出错,切难以理解。所以,在Android当中定义了一些辅助类,并且定义了一些常量来代替这些长字符串,例如:People.CONTENT_URI
ContentResolver 介绍说明
看完这些介绍,大家一定就明白了,ContentResolver是通过URI来查询ContentProvider中提供的数据。除了URI以外,还必须知道需要获取的数据段的名称,以及此数据段的数据类型。如果你需要获取一个特定的记录,你就必须知道当前记录的ID,也就是URI中D部分。
前面也提到了Content providers是以类似数据库中表的方式将数据暴露出去,那么ContentResolver也将采用类似数据库的操作来从Content providers中获取数据。现在简要介绍ContentResolver的主要接口,如下:
返回值 函数声明
final Uri insert(Uri url, ContentValues values)Inserts a row into a table at the given URL.
final int delete(Uri url, String where, String[] selectionArgs)Deletes row(s) specified by a content URI.
final Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)Query the given URI, returning a Cursor over the result set.
final int update(Uri uri, ContentValues values, String where, String[] selectionArgs)Update row(s) in a content URI.
看到这里,是否感觉与数据库的操作基本一样的?就是这样的,详细解析请参考Android SQLite解析篇中的说明,不在此详细说明。
最后一个问题:如何获取ContentResolver?调用getContentResolver (),例如:ContentResolver cr = getContentResolver();
制作ContentResolver实例
以上就完全介绍了如何获取、使用ContentResolver,启动Eclipes,制作一个完整的实例
打开showcontent.java,修改如下:
Java代码
package moandroid.showcontact;
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Contacts.Phones;
import android.widget.ListAdapter;
更多精彩
赞助商链接