版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2.高 堂 解 煥 講 高 堂 解 煥 講 ContentProvider 范例 范例1. 何謂 何謂Android 的嫡系 件 組 的嫡系 件 組Android 有 4 一等公民 項(xiàng) (或 嫡系 稱為 親屬),包括:Activity、 ContentProvider、 IntentReceiver 與Service。 都必 宣告于 它們 須 AndroidManifest.xml 檔案里,如下:這讓 Android 知道我 城市
2、里定 了多少 嫡系 件 ; 們 義 個(gè) 組 類別 Android 可以在 就 啟動(dòng)時(shí) 將它行起 ,成 共享的 們執(zhí) 來 為 (Shared)服 件。 些嫡系服 件 的 通,通常是透 「意 」 務(wù)組 這 務(wù)組 間 溝 過 圖(Intent) 象 對(duì) 來請(qǐng) Android 方, 轉(zhuǎn)達(dá)給對(duì) Android 依據(jù)意 而找出最佳的配 。配 成功, 則會(huì) 圖 對(duì) 對(duì)就展 相互的 通 服 了。 開 溝 與 務(wù)2. 什 是 么 什 是 么 Cont
3、entProvider 嫡系 件 組 嫡系 件 組---- 以 SQLite 例 為在 Android 里,SQLite 據(jù) 是最典型的 數(shù) 庫 ContentProvider, 存各式各 的 容。 除 負(fù)責(zé)儲(chǔ) 樣 內(nèi)了 據(jù) 之外, 有 多其 的 數(shù) 庫 還 許 它種類 ContentProvider。在 里 不是要介 些 這 并 紹這ContentProvider,而是要透過SQLite 認(rèn)識(shí) ContentProvider 接口,然
4、后 舶 將 來 Linter 件,配 組上這種 ContentProvider 接口, 身一 成 讓它搖 變 為 Android 的嫡系 件。 組2.1 一般 一般(即非嫡系 即非嫡系)SQLite 的范例 的范例有透 沒 過 ContentProvider 接口 使用 來 SQLite,就是對(duì)SQLite 的 「非嫡系」 用法。 此 , 時(shí)用程序透 應(yīng) 過 JDBC 接口和 SQL 句 語 來與 SQLite 通,以存取 據(jù) 里的
5、容。先 溝 數(shù) 庫 內(nèi) 認(rèn)識(shí)這種用法。 此范例 傳統(tǒng) 將從 SQLite 取 據(jù)。 首先建立一 程序 目,其含有 讀 數(shù) 個(gè) 項(xiàng) 兩個(gè) Java 程序文件:ac01.java 和 DataProvider.java。 其中,ac01.java 是典型的 Activity , 類別 負(fù)責(zé) UI 面的 示工 畫 顯作,而 DataProvider 則負(fù)責(zé)與 SQLite 通。其 程序代 : 溝 詳細(xì) 碼為/* ----- ac01.java
6、 程序代碼 ------*/package com.misoo.pklx; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import android.app.ListActivity; import android.database.Cursor; import android.os.Bundle; import android.
7、view.View;+ “stud_name“ + “ TEXT“ + “);“);String sql_1 = “insert into “+ TABLE_NAME + “ (stud_no, stud_name) values('S101', 'Lily');“;String sql_2 = “insert into “ + TABLE_NAME + “ (stud_no, stud_name) va
8、lues('S102', 'Linda');“;String sql_3 = “insert into “ + TABLE_NAME + “ (stud_no, stud_name) values('S103', 'Bruce');“;try { db.execSQL(sql_1); db.execSQL(sql_2); db.execSQL(sql_3); }ca
9、tch (SQLException e) { Log.e(“ERROR“, e.toString()); return; }}public Cursor query(String[] projection, String selection, String[] selectionArgs, String sortOrder) {Cursor cur = db.query(TABLE_NAME, projection, null,
10、null, null, null, null);return cur;}public void close(){ db.close(); } }用法 于非嫡系的用法:在 這種 屬 ac01.java 程序代 里,其指令: 碼DataProvider dp = new DataProvider(this);明確指定由 DataProvider 象 提供服 。反之,嫡系用法 是透 意 對(duì) 來 務(wù) 則 過 圖(Intent)來請(qǐng) An
11、droid代 配 , 而找出適 的 為 對(duì) 進(jìn) 當(dāng) ContentProvider 象 對(duì) 來為 aco1 象提供服 。 對(duì) 務(wù)2.2 嫡系 嫡系 SQLite 的范例 的范例才的范例里,我 直接使用 剛 們 DataProvider 的接口 類別 來與 SQLite 通。 本 的范例, 溝 節(jié) 將替 DataProvider 配上 ContentProvider 接口,讓ac01 象能透 對(duì) 過 ContentProvider 新接
12、口 通 來溝 。此范例也是從SQLite 據(jù) 取 數(shù) 庫讀 3 據(jù); 仔 看看其程序代 的微妙差 : 筆數(shù) 請(qǐng) 細(xì) 碼 異/* ----- ac01.java 程序代碼 ------*/package com.misoo.pkrr; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import android.app.ListActi
13、vity; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.ListView; import android.widget.SimpleAdapter;public
14、class ac01 extends ListActivity {public static int g_variable; public static final String AUTHORITY = “com.misoo.provider.rx09-02“; public static final Uri CONTENT_URI = Uri.parse(“content://“ + AUTHORITY+ “/Student“);pr
15、ivate static final String[] PROJECTION = new String[]{ “stud_no“, “stud_name“};@Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); Intent intent = getIntent(); if (intent.get
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
評(píng)論
0/150
提交評(píng)論