预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

2.高焕堂讲解ContentProvider范例 1.何谓Android的嫡系组件 Android有4项一等公民(或称为嫡系亲属),包括:Activity、ContentProvider、IntentReceiver与Service。它们都必须宣告于AndroidManifest.xml档案里,如下: <?xmlversion="1.0"encoding="utf-8"?> <manifestxmlns:android="http://schemas.android.com/apk/res/android" package="com.misoo.SQ03"> <uses-permissionxmlns:android="http://schemas.android.com/apk/res/android" android:name="android.permission.INTERNET"> </uses-permission> <applicationandroid:icon="@drawable/icon"android:label="@string/app_name"> <providerandroid:name="DataProvider" android:authorities="com.misoo.provider.SQ03"> </provider> <activityandroid:name=".ac01"android:label="@string/app_name"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activityandroid:name=".DispActivity"android:label="DispActivity"> </activity> </application> </manifest> 这让Android知道我们城市里定义了多少个嫡系组件类别;Android可以在启动时就将它们执行起来,成为共享的(Shared)服务组件。这些嫡系服务组件间的沟通,通常是透过「意图」(Intent)对象来请Android转达给对方,Android则会依据意图而找出最佳的配对。配对成功,就展开相互的沟通与服务了。 2.什么是ContentProvider嫡系组件 ----以SQLite为例 在Android里,SQLite数据库是最典型的ContentProvider,负责储存各式各样的内容。除了数据库之外,还有许多其它种类的ContentProvider。在这里并不是要介绍这些ContentProvider,而是要透过SQLite认识ContentProvider接口,然后将舶来Linter组件,配上这种ContentProvider接口,让它摇身一变成为Android的嫡系组件。 2.1一般(即非嫡系)SQLite的范例 没有透过ContentProvider接口来使用SQLite,就是对SQLite的「非嫡系」用法。此时,应用程序透过JDBC接口和SQL语句来与SQLite沟通,以存取数据库里的内容。先认识这种传统用法。此范例将从SQLite读取数据。首先建立一个程序项目,其含有两个Java程序文件:ac01.java和DataProvider.java。其中,ac01.java是典型的Activity类别,负责UI画面的显示工作,而DataProvider则负责与SQLite沟通。其详细程序代码为: /*-----ac01.java程序代码------*/ packagecom.misoo.pklx; importjava.util.ArrayList; importjava.util.HashMap; importjava.util.Map; importandroid.app.ListActivity; importandroid.database.Cursor; importandroid.os.Bundle; importandroid.view.View; importandroid.widget.ListView; importandroid.widget.SimpleAdapter; publicclassac01extendsListActivity{ privatestaticfinalString[]PROJECTION=newString[]{"stud_no","stud_name