先看ContentProvider 內容提供者(一) 再看本篇內容。兩篇內容是一體的。
ContentResolver 訪問者
package cn.teee.word_resolver;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
query();
}
// http://www.baidu.com
// http://www.baidu.com/images
// http://www.baidu.com.cn
// 訪問單詞本之查詢數據
public void query() {
// 訪問ContentProvider的工具
ContentResolver cr = getContentResolver();
// 準備Uri,Uri必須是已知條件
Uri url = Uri.parse("content://cn.teee.providers.word");
// 執行,並獲取結果
String[] columns = { "en", "_id","zh" };
String whereClause = null;
String[] whereArgs = null;
String sortOrder = "en asc";
Cursor c = cr.query(url, columns, whereClause, whereArgs, sortOrder);
// 處理結果
if(c != null && c.moveToFirst()) {
for(; !c.isAfterLast(); c.moveToNext()) {
long id = c.getLong(c.getColumnIndex("_id"));
String en = c.getString(c.getColumnIndex("en"));
String zh = c.getString(c.getColumnIndex("zh"));
Log.d("teee", "_id=" + id + ", en=" + en + ", zh=" + zh);
}
}
if(!c.isClosed()) {
c.close();
c = null;
}
}
// 訪問單詞本之增加數據
public void insert() {
// 訪問ContentProvider的工具
ContentResolver cr = getContentResolver();
// 準備Uri,Uri必須是已知條件
Uri url = Uri.parse("content://cn.teee.providers.word");
// 準備操作時的必要數據
ContentValues values = new ContentValues();
values.put("en", "result");
values.put("zh", "結果");
// 執行,並獲取結果
Uri result = cr.insert(url, values);
Log.i("teee", "result uri -> " + result);
// 處理結果
long id = ContentUris.parseId(result);
if(id > 0) {
Log.i("teee", "增加數據成功!");
} else {
Log.e("teee", "增加數據失敗!");
}
}
}