资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
一、什么(shnme)是ContentProviderContentProvider用来存储和检索数据ContentProvider是应用(yngyng)之间互相访问数据的唯一方法Android自身提供了一些常用的Provideraudio、video、image、contacts等如果你想使你的数据能够共享,要么建立一个你自己的ContentProvider;要么往已存在的ContentProvider中写数据第1页/共14页第一页,共15页。如何(rh)访问ContentProvider借助工具类ContentResolver获得(hud)ContentResolver由activity或context的方法:getContentResolver()使用ContentResolver的方法访问数据库查找:query插入:insert更新:update删除:delete第2页/共14页第二页,共15页。ContentProvider如何存储(cnch)数据每一个ContentProvider都有一个Uri来标识它本身ContentProvider存储数据(shj)的形式:第3页/共14页第三页,共15页。ContentProvider的查找(chzho)finalCursorContentResolver.query(Uriuri,Stringprojection,Stringselection,StringselectionArgs,StringsortOrder)使用者自行管理(gunl)Cursor的生命周期finalCursorActivity.managedQuery(Uriuri,Stringprojection,Stringselection,StringselectionArgs,StringsortOrder)由所在的Activity来管理(gunl)Cursor的生命周期第4页/共14页第四页,共15页。ContentProvider的查找(chzho)Stringprojection=newStringPeople._ID,People._COUNT,People.NAME,People.NUMBER;Uricontacts=People.CONTENT_URI;CursormanagedCursor=managedQuery(contacts,projection,/Whichcolumnstoreturnnull,/Whichrowstoreturn(allrows)null,/Selectionarguments(none)/PuttheresultsinascendingorderbynamePeople.NAME+ASC);第5页/共14页第五页,共15页。ContentProvider的查找(chzho)privatevoidgetColumnData(Cursorcur)if(cur.moveToFirst()Stringname,phoneNumber;intnameColumn=cur.getColumnIndex(People.NAME);intphoneColumn=cur.getColumnIndex(People.NUMBER);StringimagePath;doname=cur.getString(nameColumn);phoneNumber=cur.getString(phoneColumn);while(cur.moveToNext();第6页/共14页第六页,共15页。修改(xigi)ContentProvider的数据增加一条新记录:insert给一条已存在的记录增加新信息:insert更新(gngxn)记录:update删除记录:delete借助:ContentValues、ContentResolver第7页/共14页第七页,共15页。增加(zngji)一条新记录ContentValuesvalues=newContentValues();/AddAbrahamLincolntocontactsandmakehimafavorite.values.put(People.NAME,AbrahamLincoln);/1=thenewcontactisaddedtofavorites/0=thenewcontactisnotaddedtofavoritesvalues.put(People.STARRED,1);Uriuri=getContentResolver().insert(People.CONTENT_URI,values);第8页/共14页第八页,共15页。已有记录增加(zngji)新信息UriphoneUri=null;phoneUri=Uri.withAppendedPath(uri,People.Phones.CONTENT_DIRECTORY);values.clear();values.put(People.Phones.TYPE,People.Phones.TYPE_MOBILE);values.put(People.Phones.NUMBER,1233214567);getContentResolver().insert(phoneUri,values);第9页/共14页第九页,共15页。更新(gngxn)和删除更新(gngxn):ContentResolver.update()删除:ContentResolver.delete()第10页/共14页第十页,共15页。如何(rh)创建ContentProvider?通过Sqlite的方式建立ContentProvider继承ContentProvider类实现(shxin)SQLiteOpenHelper实现(shxin)增删改查等接口queryinsertupdatedeletegetTypeonCreate第11页/共14页第十一页,共15页。如何(rh)创建ContentProvider?在manifest中声明(shngmng)ContentProvider第12页/共14页第十二页,共15页。The End!第13页/共14页第十三页,共15页。感谢您的观看(gunkn)!第14页/共14页第十四页,共15页。内容(nirng)总结一、什么(shn me)是ContentProvider。audio、video、image、contacts等。phoneNumber = cur.getString(phoneColumn)。values.put(People.STARRED, 1)。第13页/共14页。感谢您的观看。第14页/共14页第十五页,共15页。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号