97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

  您的位置:華清遠(yuǎn)見教育科技集團(tuán) >> 新聞動(dòng)態(tài) >> Android資料 >> Android開發(fā)之使用數(shù)據(jù)提供者  
 
Android開發(fā)之使用數(shù)據(jù)提供者
分享到:

使用ContentProvider是通過Android組件都具有的ContentResolver對象,通過Uri進(jìn)行數(shù)據(jù)操作。程序開發(fā)人員只需要知道Uri和數(shù)據(jù)集的數(shù)據(jù)格式,則可以進(jìn)行數(shù)據(jù)操作,解決不同應(yīng)用程序間的數(shù)據(jù)共享問題。

每個(gè)Android組件都具有一個(gè)ContentResolver對象,獲取ContentResolver對象的方法是調(diào)用getContentResolver()方法。

代碼清單7-53 獲取ContentResolver對象


ContentResolver resolver = getContentResolver();

1.查詢操作

在獲取到ContentResolver對象后,程序開發(fā)人員則可以使用query()方法查詢目標(biāo)數(shù)據(jù)。代碼清單7-54所示的代碼是查詢ID為2的數(shù)據(jù)。

代碼清單7-54 獲取ContentResolver對象


String KEY_ID = "_id";
    String KEY_NAME = "name";
    String KEY_AGE = "age";
    String KEY_HEIGHT = "height";

    Uri uri = Uri.parse(CONTENT_URI_STRING + "/" + "2";
    Cursor cursor = resolver.query(uri,
        new String[] {KEY_ID, KEY_NAME, KEY_AGE, KEY_HEIGHT},
                null, null, null);

在Uri中定義了需要查詢數(shù)據(jù)的ID,在query()方法并沒有額外聲明查詢條件。

如果需要獲取數(shù)據(jù)集中的全部數(shù)據(jù),則可直接使用CONTENT_URI,此時(shí)ContentProvider在分析Uri時(shí)將認(rèn)為需要返回全部數(shù)據(jù)。ContentResolver的query()方法與SQLite數(shù)據(jù)庫的query()方法非常相似,語法結(jié)構(gòu)如代碼清單7-55所示。

代碼清單7-55 ContentResolver的query()方法語法


Cursor query(Uri uri, String[] projection, String selection,
                        String[] selectionArgs, String sortOrder)

其中,uri定義了查詢的數(shù)據(jù)集;projection定義了從數(shù)據(jù)集返回哪些數(shù)據(jù)項(xiàng);selection定義了返回?cái)?shù)據(jù)的查詢條件;selectionArgs是對應(yīng)的實(shí)際查詢條件;sortOrder是排序方式。

2.添加操作

向ContentProvider中添加數(shù)據(jù)有兩種方法:一種是使用insert()方法,向ContentProvider中添加一條數(shù)據(jù);另一種是使用bultInsert()方法,批量地添加數(shù)據(jù)。

代碼清單7-56所示的代碼說明了如何使用insert()方法添加單條數(shù)據(jù)。

代碼清單7-56 使用insert()方法添加單條數(shù)據(jù)


ContentValues values = new ContentValues();
    values.put(KEY_NAME, "Tom");
    values.put(KEY_AGE, 21);
    values.put(KEY_HEIGHT, );
    Uri newUri = resolver.insert(CONTENT_URI, values);

代碼清單7-57所示的代碼說明了如何使用bultInsert()方法添加多條數(shù)據(jù)。

代碼清單7-57 使用bultInsert()方法添加多條數(shù)據(jù)


ContentValues[] arrayValues = new ContentValues[10];
    //實(shí)例化每一個(gè)ContentValues
    int count = resolver.bultInsert(CONTENT_URI, arrayValues);

3.刪除操作

刪除操作需要使用delete()方法。如果需要?jiǎng)h除單條數(shù)據(jù),則可以在Uri中指定需要?jiǎng)h除數(shù)據(jù)的ID;如果需要?jiǎng)h除多條數(shù)據(jù),則可以在selection中聲明刪除條件。

代碼清單7-58所示的代碼說明了如何刪除ID為2的數(shù)據(jù)。

代碼清單7-58 刪除ID為2的數(shù)據(jù)


Uri uri = Uri.parse(CONTENT_URI_STRING + "/" + "2");
    int result = resolver.delete(uri, null, null);

也可以在selection中將刪除條件定義為ID大于4的數(shù)據(jù),如代碼清單7-59所示。

代碼清單7-59 刪除條件定義為ID大于4的數(shù)據(jù)


String selection = KEY_ID + “>4”;
    int result = resolver.delete(CONTENT_URI, selection, null);

4.更新操作

更新操作需要使用update()方法,參數(shù)定義與delete()方法相同,同樣可以在Uri中指定需要更新數(shù)據(jù)的ID,也可以在selection中聲明更新條件。

代碼清單7-60所示的代碼說明了如何更新ID為7的數(shù)據(jù)。

代碼清單7-60 更新ID為7的數(shù)據(jù)


ContentValues values = new ContentValues();
    values.put(KEY_NAME, "Tom");
    values.put(KEY_AGE, 21);
    values.put(KEY_HEIGHT, );
    Uri uri = Uri.parse(CONTENT_URI_STRING + "/" + "7");
    int result = resolver.update(uri, values, null, null);

 更多相關(guān)文章

·Android開發(fā)之使用Intent發(fā)送廣播消息
·Android開發(fā)之獲取Activity返回值
·Android開發(fā)之代碼建庫(SQLiteOpenHelper)
·Android開發(fā)之創(chuàng)建ContentProvider
·Android開發(fā)之SQLite數(shù)據(jù)庫簡介