ContentProvider之訪問者(二)

先看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", "增加數據失敗!");
        }
    }
}
發佈了97 篇原創文章 · 獲贊 20 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章