ANDROID
1.7.8. Cc phương thc ca chu ksng
Phương thc: onCreate()
vĐược gi khi activity lnđầu tinđược to
v đơy bn làm tt ccc cài đặt tĩnh -- to cc view, kết ni dliuđến list
.v.v
v Phương thc này gi qua mtđối tượngBundle chađựng ttrng thi trược
ca Activity
v Lun theo sau bi onStart()
Phương thc: onRestart()
vĐược gi sau khi activity đú được dng, chmt khong đang khiđộng ln
na (stared again)
v Lun theo sau bi onStart()
Phương thc: onStart()
vĐược gi trước khi mt activity visible vi người dng.
v Theo sau bionResume() nếu activity đến trng thi foreground hoconStop()
nếntrnnn.
Phương thc: onResume()
vĐược gi trước khi activity btđầu tương tc vi người dng
v Ti thiđim này activity trn dnh ca stack activity.
v Lun theo sau bionPause()
Phương thc: onPause()
vĐược gi khi hthng đang resuming activity khc.
v Phương thc này đin hnh vic gili khng đổi dliu.
v nnđược din ra mt cch nhanh chúng bi vactivity kếtiếp skhng
được resumed ngay cho đến khi ntrli.
v Theo sau bionResume nếu activity trvt trước, hoc bionStop nếu
trnn visible vi người dng.
v Trng thi ca activity cthbgiết bi hthng.
Phương thc: onStop()
vĐược gi khi activity khng thuc tm nhn ca người dng.
v Ncthdin ra bi vn đang bhy, hoc bi vactivity khc vađược
resumed bao phnú.
vĐược theo sau bionRestart() nếu activity đang đở liđể tương tc vi người
dng, hoconDestroy() nếu activity đang b.
v Trng thi ca activity cthbgiết bi hthng.
Phương thc: onDestroy()
vĐược gi trước khi activity bhy.
vĐú ln gi cui cng activity này được nhn.
v Nú được gi khc bi vactivity đang hoàn thành, hoc bi vhthng tm
thi bhy ditđể tiết kim vng nh.
v Bn thphơn bit gia 2 kch bn vi phương isFinshing().
v Trng thi ca activity cú th được giết bi hthng.
1.7 CÁC THÀNH PHN GIAO DIN TRONG ANDROID
1.7.1. View
Trong mtng dng Android, giao din người dng được xơy dng tccđối tượng
View ViewGroup. nhiu kiu View ViewGroup. Mi mt kiu mt hu du
ca class View tt ccc kiuđú được gi cc Widget.
Tt cmi widget đều chung cc thuc tnh cơbn như cch trnh bày vtr,
background, kch thước, l,… Tt cnhng thuc tnh chung này được thhin hết
trong đối tượng View.
Trong Android Platform, cc screen lunđược btrtheo mt kiu cu trc phơn cp
nhưhnh dưới. Mt screen là mt tp hp cc Layout cc widget được btr tht.
Để thhin mt screen thtrong m onCreate ca mi Activity cn phiđược gi mt
hàm setContentView(R.layout.main); hàm này sload giao din tfile XML lnđể
phơn tch thành bytecode.
Hnh 1-8 Cu trc mt giao dinng dng Android
1.7.2. ViewGroup
ViewGroup thc ra chnh View hay i đỳng hơn thViewGroup chnh cc
widget Layout được dng để btrccđối tượng khc trong mt screen. Cú mt sloi
ViewGroup nhưsau:
1.7.2.1. LinearLayout
LinearLayout được dng để btrcc thành phn giao din theo chiu ngang hoc
chiu dc nhưng trn mt line duy nht khng xung dũng.
LinearLayout làm cho cc thành phn trong khng bphthuc o kch thước ca
n hnh. Cc thành phn trong LinearLayout được dàn theo nhng tlcn xng da
vào cc ràng buc gia cc thành phn.
Hnh 1-9 Btrcc widget sdng LinearLayout
1.7.2.2. FrameLayout
FrameLayout được dng để btrccđối tượng theo kiu ging như cc Layer
trong Photoshop. Nhng đối tượng nào thuc Layer bn dưới thsbche khut bi cc
đối tượng thuc Layer nm trn. FrameLayer thường được sdng khi mun to ra cc
đối tượng khung hnh bn ngoài chng hn nhưcontact image button.
Hnh 1-10 Btrcc widget trong FrameLayout
1.7.2.3. AbsoluteLayout
Layout này được sdng để btrcc widget vào mt vtrbt ktrong layout da
vào 2 thuc tnh to độ x, y. Tuy nhin, kiu layout y rtt khi được dng bi vto
độ ca ccđối tượng lun c định skhng t điu chnh được tlkhong cch gia
ccđối tượng. Khi chuynng dng sang mt màn hnh ckch thước vi màn hnh
thiết kếban đầu thvtrca ccđối tượng skhng cũnđược chnh xc nhưban đầu.
1.7.2.4. RetaliveLayout
Layout này cho php btrcc widget theo mt trcđối xng ngang hoc dc. Để đặt
đượcđỳng vtrthcc widget cnđược xcđịnh mt mi ràng buc o đú vi cc
widget khc. Cc ràng buc y cc ràng buc tri, phi, trn, dưới so vi mt widget
hoc so vi layout parent. Da vào nhng mi ràng bucđú RetaliveLayout cũng
khng phthuc vào kch thước ca screen thiết b. Ngoài ra, cũn c ưuđim gip
tiết kim layout sdng nhm mcđớch gim lượng tài nguyn sdng khi load đồng
thiđẩy nhanh qutrnh xlý.
Hnh 1-11 Btrwidget trong RetaliveLayout
1.7.2.5. TableLayout
Layout này được sdng khi cn thiết kếmt table cha dliu hoc cn btrcc
widget theo cc row column. Chng hn như, giao din ca mt chiếc my tnh đơn
gin hoc mt danh sch dliu.
Hnh 1-12 Btrwidget trong TableLayout
1.7.3. Button
Sdĩwidget button được gii thiuđầu tin trong scc widget khc v đơy đối
tượng thnúi là được dng nhiu nht trong hu hết ccng dng Android.
Để thiết kếgiao din vi mt button ta 2 cch nhưsau:
Thiết kếbng XML
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cmdButton1"
android:text="Touch me!"
android:onClick="touchMe"/>
Thuc tnh android:onClick="touchMe" được dng để nm bt skin click
vào button. Khi skin click button xy ra thphương thc “touchMe được khai
bo trong ththuc tnh s được gi. Nếu trường hp phương thc “touchMe” chưa
được khai bo trong file ngun tương ng thspht sinh mt exception.
Ngược li, phương thc “touchMe snhnđược mtđối tham biến là đối tượng
View nơiđú pht sinh ra skin. Đối tượng View này th p kiu trc tiếp sang
kiu Button vthc cht n mt button.
VD: trong file ngun khai bo mt hàm nhưsau:
public void touchMe(View v){
Button me = (Button) v;
Me.setText(“Touched”);
}
Thiết kếbng code
Thc ra ni thnếu khng phiđũi hi phi custom li mt widget th
khng cn phi sdng ti code. Trong mt strường hp bt buc chng ta phi
custom cc widget để cho phhp vi hoàn cnh. Chng hn nhưtrong game, cc
menu hay cc ntđiu khin,
Để khai bo mt Button trong code ta làm nhưsau:
Button cmdButton = new Button(this);
cmdButton.setText(“Touch Me!”);
cmdButon.setOnClickListener(…);
Để custom mt widget nào đú ta phi to mt class kếtha tclass Widget mun
custom, sau đú sdng m draw để vli widget đú nhưmt Canvas.
VD: canvas.drawPicture(Picture.createFromStream(...));
1.7.4. ImageButton
Cũng tương tnhưButton, ImageButton ch thm mt thuc tnh
android:src = “@drawable/icon để thm hnh nh vào và khng cthtext
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cmdButton1"
android:src="@drawable/icon"
android:onClick="touchMe"/>
Hnh 1-13 ImageButon
1.7.5. ImageView