android开发contentprovider教学ppt(内部资料)幻灯片

上传人:每**** 文档编号:113846934 上传时间:2022-06-27 格式:PPT 页数:22 大小:968.50KB
收藏 版权申诉 举报 下载
android开发contentprovider教学ppt(内部资料)幻灯片_第1页
第1页 / 共22页
android开发contentprovider教学ppt(内部资料)幻灯片_第2页
第2页 / 共22页
android开发contentprovider教学ppt(内部资料)幻灯片_第3页
第3页 / 共22页
资源描述:

《android开发contentprovider教学ppt(内部资料)幻灯片》由会员分享,可在线阅读,更多相关《android开发contentprovider教学ppt(内部资料)幻灯片(22页珍藏版)》请在装配图网上搜索。

1、2021/8/21第一章-跨应用数据源ContentProviderAndroid 软件工程师系列课程软件工程师系列课程2021/8/22本门课程目标学完本门课程后,你能够:u掌握ContentProvider实现数据共享u使用Service实现Android应用服务u实现Activity与Service的绑定和通讯u理解BroadcastReceiver实现广播通讯u使用Android的四大组件实现音乐播放器Android 软件工程师系列课程软件工程师系列课程2021/8/23本章目标理解ContentProvider的作用。使用ContentProvider获得系统信息(联系人)自定义Co

2、ntentProvider的应用Android 软件工程师系列课程软件工程师系列课程2021/8/24ContentProvider简介Android系统中存在大量的应用,当不同的应用程序直接需要共享数据时,可以使用ContentProvider来实现。ContentProvider是Android应用的四大组件之一,与Activity和Serivce相同,使用前需要注册。当一个程序需要把自己的数据暴露给其他程序使用时,该程序就可以通过提供ContentProvider来实现,其他应用程序就可以通过ContenResolver来操作Content Provider暴露的数据。应用程序通过Con

3、tentProvider开放了自己的数据,该应用程序不需要启动,其他应用程序都可以操作开放的数据,包括增删改查操作。Android 软件工程师系列课程软件工程师系列课程2021/8/25ContentProvider的使用ContentProvider的开发步骤:u继承Android的ContentProvider基类实现自己的ContentProvider类。u在AndroidManifest.xml文件中注册该ContentProvider类,为ContentProvider指定Uri。Uri类似网页访问中使用的URL地址。Uri以content/:固定开头,包括注册时指定的路径及资源。为

4、每个Uri指定访问时要返回的数据和其他操作。u其他应用程序使用ContenResolver通过ContentProvider的Uri访问开放的数据。Android 软件工程师系列课程软件工程师系列课程2021/8/26ContentProvider的注册在AndroidManifest.xml中注册ContentProvider。u在中配置 标签。uandroid:name属性:ContentProvider的类名uandroid:authorities属性:用于访问ContentProvider的名称。Android 软件工程师系列课程软件工程师系列课程2021/8/27ContenReso

5、lver的使用应用程序通过ContenProvider开放了数据后,其他应用程序应通过ContenResolver访问。ContenResolver对象通过Context提供的方法getContenResolver()来获得。ContenResolver提供了以下方法来操作:uinsertudeleteuupdateuqueryu这些方法分别会调用ContenProvider中与之对应的方法,并得到返回的结果。Android 软件工程师系列课程软件工程师系列课程2021/8/28使用ContentProvider访问手机通讯录Android系统提供了Contacts(通讯录)应用程序管理联系人

6、。同时系统还为“联系人管理”提供了ContentProvider,其他应用程序就可以通过ContentProvider访问联系人信息,而不用关心联系人在数据库中存放的物理结构。常用通讯录Uri:u管理联系人的Uri: ContactsContract.Contacts.CONTENT_URIu管理联系人电话的Uri: ContactsContract.CommonDataKinds.Phone.CONTENT_URIu管理联系人Email的Uri: ContactsContract.CommonDataKinds.Email.CONTENT_URIAndroid 软件工程师系列课程软件工程师系

7、列课程2021/8/29手机通讯录存储数据库文件Android 软件工程师系列课程软件工程师系列课程2021/8/210添加通讯录ContentProvider访问权限使用系统资源需要在AndroidManifest.xml文件中添加访问权限,否则应用程序将不能使用由系统提供的ContentProvider。在标签中添加:uuAndroid 软件工程师系列课程软件工程师系列课程2021/8/211读取联系人姓名-1ContentResolver.query(Uri uri, String projection, String selection, String selectionArgs, S

8、tring sortOrder) 方法返回一个Cursor对象。uuri: ContentProvider的uri 联系人的uri: ContactsContract.Contacts.CONTENT_URIuprojection:要查询的列名。uselection:查询的条件uselectionArgs:查询条件中通配符对应的值usortOrder:排序的列Android 软件工程师系列课程软件工程师系列课程2021/8/212读取联系人姓名-2Cursor usercursor = getContentResolver().query( ContactsContract.Contacts.

9、CONTENT_URI, null, null, null, null);SimpleCursorAdapter useradapter = new SimpleCursorAdapter( this, R.layout.userlistitem, usercursor, new StringContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, new intR.id.txtid,R.id.txtname);ListView lstshowname = (ListView)findViewById(R.id

10、.lstshowname);lstshowname.setAdapter(useradapter);使用query方法获得联系人的数据游标创建适配器绑定适配器用户ID的uri用户名称的uriAndroid 软件工程师系列课程软件工程师系列课程2021/8/213自定义ContentProvider编写一个ContentProvider的子类,该子类根据需要可以实现增、删、改、查等方法。必须在AndroidManifest.xml文件中注册自定义的ContentProvider。创建需要开放数据的URI,使用UriMatcher映射。为URI关联数据,通常使用sqlite数据库作为数据源。And

11、roid 软件工程师系列课程软件工程师系列课程2021/8/214制作开放数据的单词本应用需求:u开发单词本应用,用户可添加自己学习过程中遇到的英语单词并作注释,单词保存在sqlite数据库中。u其他应用中可根据需要访问单词本应用保存在数据库中的数据。u如:某娱乐软件的界面下端可随机出现一些记录的生词,帮助用户在不经意中加强对单词的记忆。Android 软件工程师系列课程软件工程师系列课程2021/8/215制作开放数据的单词本应用步骤:u开发单词本应用,设计数据库。u添加ContentProvider子类,开放数据库数据。u注册自定义ContentProvider后,编写新的工程调用Cont

12、entProvider提供的数据Android 软件工程师系列课程软件工程师系列课程2021/8/216单词本应用简单实现Android 软件工程师系列课程软件工程师系列课程2021/8/217添加ContentProviderpublic class WordStudyProvider extends ContentProvider public static UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH); static matcher.addURI(com.demo.wordstudyprovider, wordstudy

13、, 1); DBHelper helper; Override public boolean onCreate() helper = new DBHelper(this.getContext(), wordstudydb, null, 1); return true; Override public Cursor query(Uri uri, String columns, String selection, String selectionArgs, String sortOrder) SQLiteDatabase db = helper.getReadableDatabase(); Cur

14、sor cursor=null; if(matcher.match(uri)=1) cursor = db.rawQuery(select * from wordstudy,null); return cursor; .创建UriMatcher对象并映射URI在onCreate方法中创建数据库对象判断URI,返回查询结果Cursor对象Android 软件工程师系列课程软件工程师系列课程2021/8/218注册ContentProvider 注册ContentProvider的Uri使用标签注册Android 软件工程师系列课程软件工程师系列课程2021/8/219新建应用,调用content

15、Providerpublic class WordStudyProviderTestActivity extends Activity Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); Cursor cursor = getContentResolver().query(Uri.parse(content:/com.demo.wordstudyprovider/wordstudy), null, n

16、ull, null, null); SimpleCursorAdapter adapter = new SimpleCursorAdapter( this, R.layout.listitem, cursor, new String_id,word_e,word_c, new intR.id.txtid,R.id.txtworde,R.id.txtwordc); ListView lstshow = (ListView)findViewById(R.id.lstshow); lstshow.setAdapter(adapter); 调用ContentResolver的query方法返回查询结果Cursor指定contentProvider的uriAndroid 软件工程师系列课程软件工程师系列课程2021/8/220练习1读取联系人姓名和电话使用ListView显示查询的数据。Android 软件工程师系列课程软件工程师系列课程2021/8/221练习2实习单词本应用并完善。为单词本应用开放contentProvider。编写应用访问单词本的contentProvider。Android 软件工程师系列课程软件工程师系列课程部分资料从网络收集整理而来,供大家参考,感谢您的关注!

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!