Professional Documents
Culture Documents
www.mobilepro.vn
Professional Programming
Ni dung
Content Provider l g?
M hnh d liu
URIs
Truy vn vi Content Provider
Thay i d liu Content Provider
To 1 Content Provider
Content Provider l g?
C th hiu ContentProvider theo 2 cch :
L kho d liu m tt c cc ng dng c th truy cp v
s dng ( lu tr, c, ghi..) nh Contacts, Browser,
CallLog
L cch duy nht cc ng dng chia s d liu vi
nhau
ContentProvider c sn
H iu hnh Android i km vi 1 kho d liu
di dng ContentProvider
Ch yu l cc d liu di dng Audio, video,
images, contacts, info
Nm trong gi android.provider
EL9DemoCP
ContentProvider Implementation
Tt c cc lp ContentProvider u phi implement ( thc
thi ) 1 interface ging nhau :
Demo ti lp
To 1 Content Provider cho 1 c s d liu
cha cc i tng Book . M t :
i tng Book gm 2 thuc tnh : id & tittle
Content Provider s dng SQLite Database
cha d liu.
Thc hin cc thao tc thm, sa, xa, truy vn
Bi tp ti lp
T 1 ng dng khc , truy vn d liu Book
to t Demo trc . VD : Show Toast hin
th tn i tng sch u tin.
Ch : override phng thc query() ca
BookProvider.
M hnh d liu
Cu trc d liu ContentProvider di dng cc
bng ( ging nh database)
Mi hng l 1 bn ghi , mi ct l 1 trng ( thuc
tnh)
Mi bn ghi u c trng _ID phn bit vi cc
bn ghi khc
D liu Cursor
D liu tr li khi truy vn vi ContentProvider di
dng Cursor
S dng cc phng thc move(int Offset) ,
moveToFirst(), moveToLast(), moveToNext(),
moveToPosition(int Position) duyt Cursor
ly c d liu t Cursor , bt buc phi ly
c columnIndex v bit c kiu ca d liu,
sau s dng cc phng thc : getDouble(int
columnIndex), getString(int columIndex), .) ly
d liu
URIs
URI
D liu ContentProvider c show thng qua
URI ( 1 chui String tr n d liu CP)
Tt c cc URIs tr n d liu ContentProvider
u bt u vi chui content://
System URIs
Android nh ngha hng s CONTENT_URI cho
tt c cc provider c sn trong h thng
V d : URI cho bng cha d liu s in thoi
trong danh b v URI cho bng d liu cha nh
cc bn ghi trong danh b:
Cu trc 1 URI
A : Tin t bt buc nh du y l 1 URI tr
n d liu CP -> Khng c sa
B : ng dn n kho d liu CP -> Duy nht
C : Tn bng d liu c yu cu
D : ID ca bn ghi cn ly
1 s ContentURI
Contact : ContactsContract.Contacts.CONTENT_URI
Setting : System.Setting.CONTENT_URI
Call Logs : CallLog.Calls.CONTENT_URI
Browser Bookmarks : Browser.BOOKMARKS_URI
Truy vn 1 ContentProvider
Truy vn ContentProvider
Cn 3 thng tin sau truy vn 1 CP:
URI tr n CP
Tn bng d liu mun ly
Kiu d liu ca cc thuc tnh ( ly d liu t
Cursor ra )
V d truy vn 1 bng
V d truy vn 1 bn ghi
Cn bit c ID ca bn ghi
C th s dng cc phng thc h tr :
c d liu t Cusror
Cc bc thm bn ghi mi
Khi to 1 i tng ca lp ContentValues cha d
liu cc trng tng ng ( s dng phng thc put (
COLUMN, DATA) )
S dng phng thc ContentResolover().insert() thm
d liu vo bng
Update d liu
S dng phng thc ContentResolover.update()
Xa bn ghi
Xa 1 bn ghi :
S dng phng thc ContentResolver.delete() vi URI
ca 1 bn ghi truyn vo.
Xa nhiu bn ghi :
Vn s dng phng thc ContentResolver.delete()
nhng vi URI tr n bng d liu.
VD: android.provider.Contacts.People.CONTENT_URI
Ngoi ra s dng thm mnh WHERE trong SQL
xc nh xem nhng bn ghi no mun xa.
To 1 content provider
Cc bc to ContentProvider
To h thng lu tr d liu ContentProvider
> Recommended : S dng SQLite
To 1 lp extends t lp ContentProvider
thao tc vi cc phng thc truy cp d liu
Implement 6 phng thc : query(), insert(),
update(), delete(), getType(), onCreate()
Khai bo ContentProvider
Mc ch h thng bit content provider m
bn xy dng.
Khai bo trong AndroidManifest.xml s dng tag
<provider>
Homework 1
Vit 1 ng dng bao gm 2 activity :
Activity 1 : C tn l ContactList.java
L 1 ListActivity , hin th list cc danh b trong my.
Khi click vo 1 item trong list s chuyn sang Activity 2.
Activity 2 : C tn l ContactEditor.java
L 1 form cha giao din sa cc thng tin ca 1 danh b.
Hin th d liu ca danh b tng ng t Activity 1 gi sang ( Bao gm Tn,
Email, S in thoi, avatar )
Sau khi sa xong, ngi dng click vo button Save lu li, d liu c
update . Ch kim tra bng cch m li danh b trong my xem thng tin c
sa thnh cng hay cha.
Gi : ContentURI ca Contact :
ContactsContract.Contacts.CONTENT_URI
Custom listview
Custom listview
Homework2
Vit 1 ng dng hin th list cc note c trong
ng dng Notepad ( lm t bui trc ).