You are on page 1of 154

GII THIU

Anh L Training hot ng trong lnh vc o to, hin ti chng ti ang trin khai cc chng
trnh o to trong lnh vc Marketing, Sale, Cng ngh thng tin, ha my tnh, Qun tr
doanh nghip, K nng mm v ng dng cng ngh trc tuyn vo hot ng doanh nghip.
Thi gian qua, Android thu ht rt nhiu nh pht trin t khp mi ni khi Goole phn phi
min ph Android v cc on m ngun m cho bt c ai mun tham gia pht trin phn mm
cho Android. V th, nu nm trong tay nhng kin thc c bn v h iu hnh ny, bn c th
d dng a ra cc phn mm cho Android v c th ty chnh theo ring ca mnh.
Kha hc lp trnh ng dng Android ti Anh L Training chnh l ni em li cho bn nhng
cng c cn thit, nhng kin thc c bn, gip bn tin gn hn ti v tr ca mt lp trnh vin,
mt nh pht trin chuyn nghip, hoc ch n gin l tha sc sng to ra nhng ng dng hu
ch cho cuc sng.
Sau kha hc Lp trnh ng dng Android bn s thnh tho cc cng vic sau:
T thit lp mi trng pht trin ng dng cho Android.
p dng c quy trnh pht trin ng dng cho in thoi Android.
T pht trin ng dng Android hon chnh, theo m hnh hng i tng, tch hp cc
module ca Google, ca nh pht trin th 3 vo ng dng ca bn.
Hiu bit su sc v Android v nhng cng ngh mi ca Google.
T pht trin ng dng Android hon chnh tch hp cc module ca
Google vo ng dng, thnh tho trong vic s dng web services.
Gio trnh Lp trnh ng dng Adnroid c vit cho cc hc vin ca Anh L Training.
Trong qu trnh bin son khng trnh khi nhng khim khuyt, chng ti rt mong v xin cm
n cc ng nghip, cc bn c nhng ng gp cun sch ngy cng hon thin.

ANH L TRAINING

Lp trnh ng dng Android

[1]

MC LC
TNG QUAN V ANDROID .................................................................................................................................... 3
CI T CNG C LP TRNH ANDROID ......................................................................................................... 7
TEXT FIELDS & FORM WIDGETS ....................................................................................................................... 19
MATH-DATE-REGULAREXPRESSION-STRING ............................................................................................... 24
BNG S XE ........................................................................................................................................................... 27
SPINNER .................................................................................................................................................................. 31
CHECKBOX ............................................................................................................................................................. 36
RADIOBUTTON ...................................................................................................................................................... 41
PASSWORD ............................................................................................................................................................. 46
TOGGLEBUTTON ................................................................................................................................................... 50
ALERTDIALOG ....................................................................................................................................................... 54
GRIDVIEW ............................................................................................................................................................... 56
RATINGBAR ............................................................................................................................................................ 59
LAYOUT .................................................................................................................................................................. 63
MENU ....................................................................................................................................................................... 76
CHN V CHI NHC MP3 ................................................................................................................................. 85
GOOGLE MAP ......................................................................................................................................................... 92
ANALOGCLOCK & DIGITALCLOCK .................................................................................................................. 98
DATE PICKER ....................................................................................................................................................... 100
TOAST .................................................................................................................................................................... 105
PROGRESSBAR..................................................................................................................................................... 108
ACTIVITY .............................................................................................................................................................. 114
SQLITE ................................................................................................................................................................... 130
CI T & QUN TR SQLITE TRONG FIREFOX .......................................................................................... 145
SEND EMAIL ......................................................................................................................................................... 150

Lp trnh ng dng Android

[2]

TNG QUAN V ANDROID


1. Android l g ?
Android l mt h iu hnh dnh cho thit b di ng nh in thoi, my tnh bng v
netbooks.Android c pht trin bi Google, da trn nn tng Linux kernel v cc phn
mm ngun m. Ban u n c pht trin bi Android Inc (sau c Google mua li) v
gn y n tr thnh mt trong nhng phn mm ng u ca lin minh OHA (Open
Handset Alliance - vi khong 78 thnh vin bao gm c nh sn xut, nh pht trin ng
dng... cho thit b di dng m dn u l Google). Andorid c pht trin nhm cnh tranh
vi cc h iu hnh di ng khc nh iOS (Apple), BlackBerry OS, Windows Mobile
(Microsoft), Symbian (Nokia), Samsung (Bada), WebOS (Palm)... Theo thng k trong qu II
nm 2010 ti M, h iu hnh Android chim th phn 33% (cao nht) trong tng s cc h
iu hnh di ng c bn ra, th 2 l BlackBerry OS 28% v iOS (Apple) xp th 3 vi
22%.
Android c mt cng ng pht trin ng dng rt ln, hin c khong hn 70.000 ng dng
c sn cho Android v ang lin tc c cp nht. ng dng c pht trin bng ngn ng
Java kt hp vi th vin Java c sn ca Google. Cc nh pht trin ng dng c th s dng
my tnh chy h iu hnh Windows hoc MacOS hoc Linux kt hp vi Android SDK
pht trin ng dng cho Android. H iu hnh Android bao gm 12.000.000 dng m trong
c 3.000.000 dng XML, 2.800.000 dng C, 2.100.000 dng Java, v 1.750.000 dng
C++.
pht trin phn mm trn Android, cc lp trnh vin c th ti v b cng c pht trin
(Android SDK). B cng c bao gm cc cng c v cc API cn thit, s dng ngn ng
Java lp trnh.
2. Cc chc nng chnh ca Android.
Cc chc nng m Android cung cp:
-

Android cung cp framework ng dng cho php vic ti s dng v thay th m ngun
dng component mt cch d dng.

Cung cp my o Dalvik c ti u cho cc thit b di ng.

Trnh duyt Web da trn engine m ngun m Webkit.

Lp trnh ng dng Android

[3]

Cc tnh nng ha c ti u bi mt th vin ha 2D bn di; i vi ha


3D, Android s dng th vin OpenGL ES 1.0 nu thit b c h tr.

S dng SQLite lu tr d liu c cu trc.

H tr cc nh dng hnh nh, m thanh, video ph bin nh MPEG4, H.264, MP3, AAC,
AMR, JPG, PNG, GIF.

H tr bng tng GSM (ty vo phn cng thit b).

H tr Bluetooth, EDGE, 3G, WiFi (ty vo phn cng thit b).

Ngoi ra cn c kh nng ca cc thit b nh my chp nh, thit b nh v ton cu, la


bn, v b cm bin gia tc.

Cung cp mi trng pht trin phn mm y , bao gm phn mm gi lp thit b, cc


cng c g ri (debugging), theo di b nh v nng sut hot ng, plugin cho Eclipse
IDE.

3. Kin trc ca Android

Tng ng dng Applications:


Tng ng dng ca Android bao gm cc ng dng ct li nh:
-

Email client

Chng trnh SMS

Lp trnh ng dng Android

[4]

Lch

Bn

Trnh duyt

Danh b

Cc ng dng khc.

Tng Application Framework:


tng ny, cc nh pht trin ng dng c th truy cp vo phn cng thit b, thng tin nh
v v tr, chy cc dch v nn, t cc cnh bo, thng bo vo thanh trng thi, v.v. v
quan trng nht, l cc API ca framework.
Pha di tt c cc ng dng l mt tp cc dch v h thng bao gm:
-

Mt tp cc i tng View c th c m rng xy dng mt ng dng, gm c


List, Grid, TextBox, Button, v WebBrowser.

Cc i tng ContentProvider cho php cc ng dng truy cp vo d liu ca cc ng


dng khc (chng hn nh truy cp danh b), hoc chia s d liu vi nhau.

Mt trnh qun l ti nguyn, cho php truy xut cc ti nguyn khng phi m ngun nh
cc chui c bn a ha, cc tp tin ha v giao din.

Trnh qun l thng bo cho php tt c cc ng dng hin th cc cnh bo ln thanh


trng thi.

Trnh qun l cc i tng Activity dng qun l vng i ca cc ng dng cung cp


cc chc nng iu hng.

Tng Libraries Runtime:


Tng ny cung cp cc th vin media da trn th vin PacketVideos OpenCORE; cc th
vin ny h tr kh nng playback v thu li nhiu nh dng m thanh, hnh nh thng dng
nh MPEG4, H.264, MP3, AAC, AMR, JPG, PNG.
Km theo l th vin SQLite, mt h qun tr c s d liu nh nh v mnh m c
cung cp cho tt c cc ng dng.
Runtime, Android cung cp my o Dalvik dng thc thi cc file nh dng Dalvik
Executable (.dex) c ti u ha cho cc thit b c b nh nh. My o Dalvik ch chy
cc class c ng k v c bin dch bi mt trnh bin dch Java i km theo b
SDK (dx tool). Ngoi ra Dalvik cn s dng nhn Linux qun l cc tnh nng mc thp
Lp trnh ng dng Android

[5]

v cc tc v chy theo lung. Mi ng dng Android chy trn mt tin trnh ring cng vi
mt instance ring ca my o Dalvik.Dalvik c ti u sao cho mt thit b c th chy
nhiu my o cng lc mt cch hiu qu.
Tng Linux kernel:
Android c pht trin da trn cc dch v h thng ct li ca Linux phin bn 2.6, bao
gm cc module:
-

Security

Memory management

Process management

Network stack

Driver model

Tng kernel hot ng nh mt lp tru tng gia lp phn cng v phn mm.
4. Cu trc mt d n Android
Khi to mi mt d n Android, bn cn lu ti cc mc sau:
-

AndroidManifest.xml, l mt file XML miu t ng dng c xy dng v cc thnh


phn km theo nh cc Activities, cc Services c cung cp bi ng dng .

Th mc libs/ cha cc th vin Java dng JAR ca cc hng th 3 m ng dng cn


chy.

Th mc src/ cha m ngun Java cho ng dng.

Th mc res/ cha cc ti nguyn chng hn nh cc biu tng, giao din, c ng


gi km theo khi bin dch ng dng.

Th mc assets/ cha cc file tnh m bn mun ci t ln h thng

Lp trnh ng dng Android

[6]

CI T CNG C LP TRNH ANDROID


1. Ci t JDK.
JDK (Java Development Kit) bao gm JRE (Java Runtime Environment) n l b th vin
nn tng chng ta c th lp trnh java.
-

download JDK truy cp vo a ch:


http://www.oracle.com/technetwork/java/javase/downloads/index.html

Click vo hnh ca mc Java Platform (JDK) nh sau:

Tip theo, Click vo radiobutton Accept License Ageement. Chn vo file .exe ca mc
Windows x86(32-bit). (Hoc Windows x86(64-bit)).

Lp trnh ng dng Android

[7]

Chy file download v ci t

2. Ci t Eclipse.
-

L cng c son tho, bin dch v chy ng dng c vit bng java (trong c ng
dng Android)

Download, truy cp t a ch:


http://www.eclipse.org/downloads/

Trn trang web ta chn download bn Eclipse IDE for Java Developers (128M), (bng
32bit hay 64bit ty theo my ca bn)

Lp trnh ng dng Android

[8]

Gii nn file mi ti (vd: eclipse-java-indigo-SR2-win32.zip) thnh th mc Eclipse

Chy chng trnh Eclipse bng cch nhp p file eclipse.exe trong th mc va Eclipse.
(khng cn ci t).

3. Ci t Android SDK
-

Android SDK (Android Software Development Kit) l b th vin nn tng lp trnh


Android.

Truy cp a ch:
http://developer.android.com/sdk/index.html v download phin bn mi nht v ci
t

Sau khi ci xong s c th mc C:\Program Files\Android.

4. Ci t ADT
Android Development Tools (ADT) l plugin ca Eclipse IDE c thit k nhm cung cp
cho lp trnh vin mi trng tch hp mnh m xy dng cc chng trnh Android trn
Eclipse.
-

M Eclipse chn Help -> Install new software.

Lp trnh ng dng Android

[9]

Chn nt Add m Hp thoi Add Repository.

Trong hp hoi va m, mc name nhp vo mt ci tn. Vd: myADT. Mc Location


nhp vo a ch nh bn di ri chn OK
http://dl-ssl.google.com/android/eclipse/

Quay v Hp thoi Install. Chn nt Select All sau next ti v finish.

5. Kt ni Eclipse v Android
-

M Eclipse Chn Window -> Preferences -> Android

Lp trnh ng dng Android

[10]

Ti SDK Location: Chn mc cha android_sdk, sau sau chn OK

6. Ci cc phin bn Android lp trnh


-

Trong Eclipse chn Window -> Android SDK Manager.

Lp trnh ng dng Android

[11]

Trong hp thoi check cc phin bn mun ci ri chn nt Install packages

7. Ci t AVD
Android Virtual Device (AVD) l cc my o android. Cho php ta chy mt my gi lp
Android trn PC phc v cho vic kim tra ng dng ta ang vit.
-

Trong Eclipse chn Window -> AVD Manager.

Lp trnh ng dng Android

[12]

Chn nt New to mt my o mi v nhp vo mt s thng tin

8. Chy Th My o
-

Trn Ecliple chn Window -> AVD Manager hoc chn biu tng trn thanh cng c
m AVD Manager.

Lp trnh ng dng Android

[13]

Chn tn my o v chn nt Start

Lp trnh ng dng Android

[14]

HELLO
1. To project mi
-

Chn File, New, Project

Chn Android Application Project v chn Next

in v chn mt s thuc tnh v chn Next

Lp trnh ng dng Android

[15]

Chn icon

To Activity

t tn cho Activity v Layout, chn finish

Lp trnh ng dng Android

[16]

2. Cu trc th mc project:
-

Layout ca project

v cu trc XML ca layout

Lp trnh ng dng Android

[17]

Lp trnh ng dng Android

[18]

TEXT FIELDS & FORM WIDGETS


1. To project mi
2. To 2 EditText
-

Chn editText t TextFields v ko sang layout

3. To Button
-

Chn Button t FormWidgets v ko sang layout

Lp trnh ng dng Android

[19]

4. To TextView
-

Chn TextView t Form Widgets v ko sang layout

5. Thay i thuc tnh cho i tng


-

Chn i tng

Trong ca s properties, chng ta thay i cc thuc tnh cn thay i

Lp trnh ng dng Android

[20]

6. Vit thm code trong MainActivity.java


-

G vo on code sau:

Chn import th vin ca i tng

Lp trnh ng dng Android

[21]

Tng t cho cc i tng khc, chng ta c nh sau:

Vit code tip tc

7. Chy ng dng
-

Chn vo icon sau

Kt qu khi chy

Lp trnh ng dng Android

[22]

Lp trnh ng dng Android

[23]

MATH-DATE-REGULAREXPRESSION-STRING
1. Math class:
Cha cc phng thc v hng s tnh (static) phc v cho ton hc.
Cc phng thc thng dng:

2. Date class:
Gip chng ta x l d liu dng ngy, thng, nm, gi, pht, giy..
Mun s dng phi import java.util.Date;
Cc hm thng dng ly v gn d liu cho Date

3. String class:
Chui l mt dy cc k t. C th dng k hiu + ni chui vi nhau. Khi to chui
n gin nht nh sau:
String ten_biem=Chui;
Cc phng thc thng dng ca chui.

Lp trnh ng dng Android

[24]

4. RegularExpression (Biu thc chnh qui)


Dng so khp mt chui vi mt mu xem chui c tha theo chun ca mu hay khng.
Vd: so 1 chui c phi l email hay khng, so 1 dy xem c phi l s xe TPHCM khng.
Mun xy dng mu phi da vo cc k t, mi k t c ngha ring
Mt s k t thng dng

Lp trnh ng dng Android

[25]

V d:
-

Email n gin:
String regex=\\w+@\\w+\\.\\w+;

S CMND:
String regex=\\d{10};
S in thoi di ng:
String regex=0\\d{8,9};
S xe my TPHCM
String regex =5\\d-[A-Z]\\d-\\d{3}.{2};

a ch web:
String regex=http://www.(\\w+\\.)\\.+\\w+;
Khi s dng ta phi dng vi class Pattern v class Matcher nh v d bn di

Lp trnh ng dng Android

[26]

BNG S XE
1. To project mi
2. To cc i tng
-

To TextView

To EditText

To Button

Lp trnh ng dng Android

[27]

To TextView ( bo co kt qu kim tra)

Lp trnh ng dng Android

[28]

3. Vit code cho MainActivity.java trong th mc src

Lp trnh ng dng Android

[29]

4. Chy th ng dng

Lp trnh ng dng Android

[30]

SPINNER
1. Gii thiu
-

Chn cc Spinner Submit Gi tr Spinner s hin th nh sau.

2. To Project
-

Chn menu : File New Project.

Chn Androind Application project Next Khai bo Project nh sau.

Hp thoi Configuration Laucher Icon Ty chn Icon Next.

Hp thoi Create Activity : Chn Activity : Blank Activity Next.

Lp trnh ng dng Android

[31]

Khai bo Activity chnh.

3. Thit k giao din


-

Vit code file strings.xml nh sau.

S dng file : activity_main.xml trong th mc layout thit k giao din.

Lp trnh ng dng Android

[32]

C hai dng : Graphical layout (Giao din ha) v *.xml (Code)

Thit k giao din theo code v kt qu nh sau.

Lp trnh ng dng Android

[33]

4. Vit code trang Activity.java

Trong qu trnh vit code thng bo li To thm file


CustomOnItemSelectedListener.java nh sau.

Vit code trang CustomOnItemSelectedListener.java

Lp trnh ng dng Android

[34]

5. Run ng dng
-

Chn cc Spinner Submit Gi tr Spinner s hin th nh sau.

Lp trnh ng dng Android

[35]

CHECKBOX
1. Gii thiu
-

Khi check vo IPhone Xut hin on Text thong bo : Androind cha c Check

Khi check vo Androind Click Display Hp thoi thng bo : Androind check : true;

2. To Project
-

Chn menu : File New Project.

Chn Androind Application project Next Khai bo Project nh sau.

Hp thoi Configuration Laucher Icon Ty chn Icon Next.

Hp thoi Create Activity : Chn Activity : Blank Activity Next.

Lp trnh ng dng Android

[36]

Khai bo Activity chnh.

3. Thit k giao din


-

Vit code trang string.xml nh sau.

S dng file : activity_main.xml trong th mc layout thit k giao din.

C hai dng : Graphical layout (Giao din ha) v *.xml (Code)

Lp trnh ng dng Android

[37]

Thit k giao din theo code nh sau.

Hoc c th to giao din theo ha nh sau.

Lp trnh ng dng Android

[38]

4. Vit code trang Activity.java

.public void onClick(View v){} : Click vo CheckBox.


.((CheckBox) v).isChecked() : Kim tra check vo CheckBox

Lp trnh ng dng Android

[39]

5. Run ng dng
-

Khi check vo IPhone Xut hin on Text thong bo : Androind cha c Check

Khi check vo Androind Click Display Hp thoi thng bo : Androind check : true;

Lp trnh ng dng Android

[40]

RADIOBUTTON
1. Gii thiu
-

Khi check vo Male Click Display Hp thoi thng bo : Male

Khi check vo Female Click Display Hp thoi thng bo : Female

2. To Project
-

Chn menu : File New Project.

Chn Androind Application project Next Khai bo Project nh sau.

Hp thoi Configuration Laucher Icon Ty chn Icon Next.

Hp thoi Create Activity : Chn Activity : Blank Activity Next.

Lp trnh ng dng Android

[41]

Khai bo Activity chnh.

3. Thit k giao din


-

Vit code trang string.xml nh sau.

S dng file : activity_main.xml trong th mc layout thit k giao din.

C hai dng : Graphical layout (Giao din ha) v *.xml (Code)

Lp trnh ng dng Android

[42]

Thit k giao din theo code nh sau.

Hoc c th to giao din theo ha nh sau.

Lp trnh ng dng Android

[43]

4. Vit code trang Activity.java

5. Run ng dng
-

Khi check vo Male Click Display Hp thoi thng bo : Male

Khi check vo Female Click Display Hp thoi thng bo : Female

Lp trnh ng dng Android

[44]

Lp trnh ng dng Android

[45]

PASSWORD
1. Gii thiu
-

Khi nhp Password vo EditText Click ng Nhp on Text nhp t EditText s


c hin th ra nh sau.

2. To Project
-

Chn menu : File New Project.

Chn Androind Application project Next Khai bo Project nh sau.

Hp thoi Configuration Laucher Icon Ty chn Icon Next.

Hp thoi Create Activity : Chn Activity : Blank Activity Next.

Lp trnh ng dng Android

[46]

Khai bo Activity chnh.

3. Thit k giao din


-

Vit code trang string.xml nh sau.

S dng file : activity_main.xml trong th mc layout thit k giao din.

C hai dng : Graphical layout (Giao din ha) v *.xml (Code)

Lp trnh ng dng Android

[47]

Thit k giao din theo code nh sau.

Hoc c th to giao din theo ha nh sau.

Lp trnh ng dng Android

[48]

4. Vit code trang Activity.java

.Toad.makeText().show() : Show d liu.


.password.getText() : ly d liu t EditText (password)
5. Run ng dng
-

Khi nhp Password vo EditText Click ng Nhp on Text nhp t EditText s


c hin th ra nh sau.

Lp trnh ng dng Android

[49]

TOGGLEBUTTON
1. Gii thiu
-

Khi Click vo Disply kt qu gi tr hin th c nhn t gi ca hai ToggleButton.

2. To Project
-

Chn menu : File New Project.

Chn Androind Application project Next Khai bo Project nh sau.

Hp thoi Configuration Laucher Icon Ty chn Icon Next.

Hp thoi Create Activity : Chn Activity : Blank Activity Next.

Lp trnh ng dng Android

[50]

Khai bo Activity chnh.

3. Thit k giao din


-

Vit code trang string.xml nh sau.

S dng file : activity_main.xml trong th mc layout thit k giao din.

C hai dng : Graphical layout (Giao din ha) v *.xml (Code)

Thit k giao din theo code nh sau.

Lp trnh ng dng Android

[51]

Hoc c th to giao din theo ha nh sau.

Lp trnh ng dng Android

[52]

4. Vit code trang Activity.java

. StringBuffer result : nhn gi tr tr v.


-

Result.append : gi tr tr v s ghi ni vo.

Toast.makeText().show() : xut ra khung d liu.

5. Run ng dng
-

Lp trnh ng dng Android

t qu gi tr hin th c nhn t gi ca hai ToggleButton.

[53]

ALERTDIALOG
1. To project mi
2. To layout
-

To button cho layout

3. Vit code cho MainActivity.java trong src

Lp trnh ng dng Android

[54]

4. Kt qu chy th

Lp trnh ng dng Android

[55]

GRIDVIEW
1. To project mi
2. To i tng GridView cho layout

3. Vit code cho MainActivity.java trong src

Lp trnh ng dng Android

[56]

4. Chy th ng dng

Khi click vo mt k t th

Lp trnh ng dng Android

[57]

Lp trnh ng dng Android

[58]

RATINGBAR
1. Tao project mi
2. To cc i tng cho layout

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/lblRateMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="nh gi"
android:textAppearance="?android:attr/textAppearanceMedium" />
<RatingBar
android:id="@+id/ratingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="4"
android:stepSize="1.0"
android:rating="2.0" />
<Button
android:id="@+id/btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Chn" />

Lp trnh ng dng Android

[59]

<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/lblResult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kt qu: "
android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
android:id="@+id/txtRatingValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</LinearLayout>

3. Vit code cho Activity

Lp trnh ng dng Android

[60]

4. Kt qu chy th

Lp trnh ng dng Android

[61]

Lp trnh ng dng Android

[62]

LAYOUT
1. Khi nim layout
Giao din ngi dng ca Android c nh ngha nh mt cy phn cp ca cc View v
ViewGroup. ViewGroup l mt container c th cha cc thnh phn khc v l lp c s cho
cc class Layout k tha t n.

Android cung cp nhiu loi layout cho php cha ng v t chc cc thnh phn ca mt
activity nh button, checkbox, v nhng view khc.
Cc layout cho php kt hp v lng vo nhau to nn giao din phc tp v p hn.
Cc layout phn ln c nh ngha trong cc file XML. Mc nh Eclipse pht sinh ra 1
layout : res/layout/main.xml dng cho Activity u tin.
Ta c th t nh ra cc layout mi cho mt Activity mi, v trong file java ca Activity ta
dng setContentView(R.layout.tenlayout) ch nh Activity s dng file .xml no lm
Layout cho n.
C mt s layout c bn nh: LinearLayout, RelativeLayout, TableLayout.
2. Cch to mt layout mi
-

Click phi chut vo ca s Project Explorer

Chn New, Other

Chn Android XML Layout File, chn Next

Lp trnh ng dng Android

[63]

Chn tn Project m layout c to thm

t tn cho layout (ch : dng ch thng)

Chn loi layout (v d nh: LinearLayout) hoc element no

Chn Finish

Lp trnh ng dng Android

[64]

3. Cc loi Layout
3.1 Linear Layout
Ging nh tn gi ca n, LinearLayout cho php cc thnh phn bn trong n hin th
tuyn tnh hoc theo chiu ngang (Horizontally) hoc theo chiu dc (Vertically).
Chiu ngang hay dc ca LinearLayout c quyt nh nh thuc tnh
android:orientation trong th LinearLayout.

3.2 Relative Layout


Trong Relative Layout mi thnh phn c nh v tng i vi cch thnh phn khc
hoc vi thnh phn cha.
Vd: hnh bn di

Lp trnh ng dng Android

[65]

u tin l textView Email, tip theo l mt EditText c v tr layout_below so vi


TextView Email. Nt Cancel nm tng i bn layout_toRighOf ca nt
Login v nt Register new Acount c v tr l layout_alignParentBottom.
3.3 Table Layout
TableLayout lm vic ging cch table layout ca HTML. Ta c th chia layout ra theo
dng v ct. Nhng khc HTML l n ch dng th TableRow chia dng.

3.4 Frame Layout


Cch b tr trong FrameLayout theo tng khung (frame) ngha l cc thnh phn bn
trong layout ny c th chng ln nhau.
Lp trnh ng dng Android

[66]

Khi cc thnh phn chng ln nhau th da vo v tr bit thnh phn no nm trn


thnh phn no. Ngha l theo m lnh thnh phn vit trc s b chng ln bi thnh
phn vit sau v c tip tc nh th.

4. V d (Tablelayout)
-

Bc 1: To project mi
+ Chn File, New, Project

+ Chn Android Project v chn Next

Lp trnh ng dng Android

[67]

+ Ti Project name: t tn cho project


+ Ti Location: Chn th mc cha project hoc chn th mc mc nh
Sau chn Next

+ Chn phin bn (version) ca Android v chn Next

+ Ti Package Name: G vo class cho ng dng, sau chn Finish

Lp trnh ng dng Android

[68]

Bc 2: Thay i layout main.xml


+ M layout main.xml
+ Click phi chut trn layout main.xml v chn change layout

+ Chn loi layout mun thay i v chn OK

Lp trnh ng dng Android

[69]

+ Thay i layout nh sau:


<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tableLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<!-- 2 columns -->


<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >

<TextView
android:id="@+id/textView1"
android:text="Column 1"
android:textAppearance="?android:attr/textAppearanceLarge" />

<Button
android:id="@+id/button1"
android:text="Column 2" />
</TableRow>
Lp trnh ng dng Android

[70]

<!-- edittext span 2 column -->


<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >

<EditText
android:id="@+id/editText1"
android:layout_span="2"
android:text="Column 1 &amp; 2" />
</TableRow>

<!-- just draw a red line -->


<View
android:layout_height="2dip"
android:background="#FF0000" />

<!-- 3 columns -->


<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >

<TextView
android:id="@+id/textView2"
android:text="Column 1"
android:textAppearance="?android:attr/textAppearanceLarge" />

<Button
android:id="@+id/button2"

Lp trnh ng dng Android

[71]

android:text="Column 2" />

<Button
android:id="@+id/button3"
android:text="Column 3" />
</TableRow>

<!-- display this button in 3rd column via layout_column(zero based) -->
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >

<Button
android:id="@+id/button4"
android:layout_column="2"
android:text="Column 3" />
</TableRow>

<!-- display this button in 2nd column via layout_column(zero based) -->
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >

<Button
android:id="@+id/button5"
android:layout_column="1"
android:text="Column 2" />
</TableRow>
</TableLayout>

Lp trnh ng dng Android

[72]

+ Kt qu khi chy

5. V d (Relativelayout)
<?xml version="1.0" encoding="utf-8"?>

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout xmlns:android=http://schemas.android.com/apk/res/an
droid
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/btnButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 1"/>
<Button
android:id="@+id/btnButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
Lp trnh ng dng Android

[73]

android:text="Button 2"
android:layout_toRightOf="@+id/btnButton1"/>
<Button
android:id="@+id/btnButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 3"
android:layout_below="@+id/btnButton1"/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btnButton3"
android:layout_marginTop="94dp"
android:text="User :"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/textView1"
android:layout_toRightOf="@+id/btnButton3" />
<Button
android:id="@+id/btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/editText1"

Lp trnh ng dng Android

[74]

android:text="Submit" />
</RelativeLayout>

Khi chy kt qu:

Lp trnh ng dng Android

[75]

MENU
1. Menu
L mt thnh phn giao din ngi dng quan trng trong nhiu loi ng dng.
Trong Android c 3 dng Menu l Option Menu, Context Menu v Popup Menu.
Ta c th nh ngha menu trong XML hoc trong code java nhng nn dng XML v:
-

Trong XML s d dng hnh dung cu trc ca menu.

Tch ring phn layout trong file XML v phn x l trong file java s lm m lnh d
nhn hn.

2. nh ngha Menu trong XML


Android cung cp mt nh dng XML chun nh ngha cho tt c loi menu.
Dng XML nh ngha menu v tt c nhng mc con bn trong n trong mt file resource.
Sau ta c th np n nh mt i tng Menu vo trong Activity.
nh ngha menu, to 1 file XML trong th mc res/menu/ v xy dng vi cc th:
-

<menu> : L node gc ca file dng nh ngha mt menu. Bn trong n l cc th <item>


v <group>

<item>: Dng nh ngha mt mc con ca menu. N c th cha mt th <menu> bn


trong to cc menu con.

<group>: L th ty chn dng gom nhm cc mc con.

V d:

3. Option menu
-

Bc 1: To project mi
+ File, New, Project

Lp trnh ng dng Android

[76]

+ Chn Android Application Project v chn Next

+ G vo v chn cc tham s thch hp, sau chn next

+ Chn icon cho ng dng

Lp trnh ng dng Android

[77]

Bc 2: To menu
+ To file .xml (activity_main.xml trong res/menu)

+ Hoc dng giao din to menu nh sau:


+ chn nt Add
+ To menu cng cp

Lp trnh ng dng Android

[78]

+ To menu con

+ Nhp cc thuc tnh vo

Bc 3: Vit code trong file MainActivity.java trong th mc src

Lp trnh ng dng Android

[79]

Bc 4: Chy th

Bc 5: Vit thm on code sau

Lp trnh ng dng Android

[80]

Bc 6: Chy th ng dng
+ Khi chn vo menu Thm

4. Context menu
-

Bc 1: To project

Bc 2: To ListView
+ Chn ListView trong Composite v ko sang Layout

Lp trnh ng dng Android

[81]

+ Hin chnh ListView li nh sau

Bc 3: Thn on code sau

Lp trnh ng dng Android

[82]

v chy th ng dng

Bc 4: Tip tc thm on code sau

Lp trnh ng dng Android

[83]

Bc 5: Chy ng dng

Lp trnh ng dng Android

[84]

CHN V CHI NHC MP3


-

Bc 1: To project mi

Bc 2: to giao din nh sau:

Lp trnh ng dng Android

[85]

Lp trnh ng dng Android

[86]

Bc 3: To th mc raw trong res v chp cc bi ht vo th mc ny (th mc raw dng


cha cc file media)

Lp trnh ng dng Android

[87]

Bc 4: M file MainActivity.java v import cc th vin h tr nh trong hnh

Bc 5: Khai bo cc tham s lin quan

Lp trnh ng dng Android

[88]

+ Code thay i bi ht khi mt nt radio c chn

+ Code cho nt Play:

Lp trnh ng dng Android

[89]

+ Code cho nt Stop:

+ Code download bi ht v my:

Lp trnh ng dng Android

[90]

Bc 6: Chy chng trnh test

Lp trnh ng dng Android

[91]

GOOGLE MAP
-

Bc 1: To my o mi chy ng dng
Vo AVD Manager tin hnh to my o nh hnh:

Bc 2: To Project mi:

Chn SDK nh hnh h tr cc th vin ca google.

Lp trnh ng dng Android

[92]

Bc 3: ng k v ly key Google Map API


+ Ly code MD5 fingerprint trn my ca bn:
Trc ht, ta phi xc nh ng dn n file debug.keystore. Vo Window ->
Preferences ly ng nh hnh:

Vo cmd g lnh sau ly m MD5 fingerprint:

Trong ng dn c:\Program Files (x86)\Java\jre6\bin l ng dn n th mc


bin ca Java trn my ca bn
Nh v d trn th m MD5 s l: 3B:72:4D:33:A6:96:49:41:26:7E:22:1A:ED:4D:DD:AD
+ Ly key Google Map API:
Vo link: https://developers.google.com/android/maps-api-signup?hl=vi
Copy m v paste nh hnh di ng thi nhn nt Generate API Key:
Lp trnh ng dng Android

[93]

Kt qu s nh hnh:

Copy on m

Vo file layout chnh ca bn (trong bi lab ny l file main.xml)

Lp trnh ng dng Android

[94]

Bc 4: chy Google Map trn ng dng, ta khai bo trong file AndroidManifest.xml


dng:
<uses-permission android:name=android.permission.INTERNET/>
V dng:
<uses-library android:name=com.google.android.maps />

Trong file MainActivity.java, ta phi Extend MapsActivity v Overrides phng thc


isRouteDisplayed():
Lp trnh ng dng Android

[95]

Bc 5: Chy ng dng test

Bc 6: To Zoom Control cho Google map:


Thm cc lnh sau vo MainActivity.java:

Lp trnh ng dng Android

[96]

Bc 7: Chy ng dng test

Lp trnh ng dng Android

[97]

ANALOGCLOCK & DIGITALCLOCK


-

Bc 1: To project mi

Bc 2: To layout

Bc 3: Vit thm code vo src/MainActivity.java

Lp trnh ng dng Android

[98]

Bc 4: Chy ng dng

Lp trnh ng dng Android

[99]

DATE PICKER
-

Bc 1: To project mi

Bc 2: To layout

Bc 3: Thm code vo src/MainActivity.java


+ import cc th vin

Lp trnh ng dng Android

[100]

+ Chn thm cc code:

Trong :

Lp trnh ng dng Android

[101]

Lp trnh ng dng Android

[102]

Bc 4: Chy ng dng

Lp trnh ng dng Android

[103]

Lp trnh ng dng Android

[104]

TOAST
-

Bc 1: To project mi

Bc 2: Thit k layout

Bc 3:

Chn thm cc code sau vao src/MainActivity.java

Lp trnh ng dng Android

[105]

Bc 4: Chy ng dng

Lp trnh ng dng Android

[106]

Lp trnh ng dng Android

[107]

PROGRESSBAR
-

Bc 1: To project mi

Bc 2: To layout

Bc 3: Vit thm code vo src/MainActivity.java

Lp trnh ng dng Android

[108]

Trong :

Lp trnh ng dng Android

[109]

Lp trnh ng dng Android

[110]

V:

Lp trnh ng dng Android

[111]

Bc 4: Chy ng dng

Lp trnh ng dng Android

[112]

Lp trnh ng dng Android

[113]

ACTIVITY
1. Activity
-

Activiy l presentation layer cho ng dng Android. Hiu n gin n mt mn hnh hin
th.

N chim ton b vng drawable ca mn hnh (tr phn status v title bar).

Mt ng dng c th c nhiu activity.

Cc activity c qun l trong AndroidManifest.xml

C th chuyn t mt activity sang 1 activity khc. Mun thc hin vic chuyn ta phi
thng qua Intent.

2. Activity life cycle

Trng thi Starting (ang bt u):


-

Khi 1 Activity cha tn ti trong b nh n trng thi Starting (ang bt u).

Lp trnh ng dng Android

[114]

Trong khi n ang bt u n s gi cc phng thc onCreate, onStart, onResume


chy v Activity chuyn sang trng thi Running.

Trong qu trnh chuyn i t Starting sang Running n s tiu tn rt nhiu ti nguyn


thit b, lm nh hng trc tip n pin, l l do ti sao ta khng t ng hy cc
activity d n khng cn hin th.

Trng thi Running (ang chy):


-

Activity trng thi ny l activity ang hin th trn mn hnh v tng tc vi ngi s
dng. Ta c th xem nh Activity ang nhn Focus.

Ti mt thi im ch c 1 Activity ang trng thi Running.

Activity ang trng thi ny c u tin v b nh v ti nguyn chy cng nhanh


cng tt

Trng thi Paused (tm ngh):


-

Khi Activity b mt Focus (khng cn tng tc vi ngi dng) nhng vn Visible trn
mn hnh th n trng thi Paused.

D thy nht l khi mt Dialogbox c bt ln, Activity nm bn di b m i (trng


thi tm ngh) nhng khng dng li (khng qua trng thi stop), khi dialogbox thc hin
xong th Activity li tip tc.

Activity trng thi ny vn c u tin v b nh v ti nguyn v n vn cn chy, ch


tm ngh thi.

Trng thi Stoped (dng):


-

Khi mt activity khng cn c visible nhng vn cn trong b nh, l trng thi


Stoped.

trng thi ny Activity c th chuyn tr li trng thi Running hoc c th b hy v


xa khi b nh.

H thng gi cc Activity trong trng thi Stoped v c th ngi dng s m tr li Activity.


Tiu tn ti nguyn chuyn t Stoped sang Running t hn nhiu so vi chy li t u v
d liu vn cn trong b nh v sn sng hot ng.
-

Cc Activity trng thi stoped c th c xa khi b nh bt k thi im no v d


nh khi ht b nh h thng Android s t hy cc Activity ang trng thi Stoped
ly thm b nh.

Lp trnh ng dng Android

[115]

Trng thi Destroyed (hy):


-

Activity c gi l Destroyed khi n khng cn nm trong b nh.

H thng Activity Manager s quyt nh xem Activity no khng cn cn thit na


xa n ra khi b nh.

Trc khi b hy Activity c th thc hin mt s hot ng v d lu d liu. Tuy nhin


khng m bo rng cc hot ng thc hin c trc khi b hy. Do , tt nht l
thc hin cc vic quan trng v d nh lu d liu ti trng thi Paused ch khng i
n trng thi Destroyed mi thc hin.

3. To mt Activity mi
Mi project c to ra u c 1 Activity mc nh. Ta c th to thm cc activity theo cc
bc:
-

To mt file layout mi cho activity mi t tn vd: activitymoi.xml

To mt class mi cho project t tn vd: activitymoi.java

Cho class va to k tha t lp Activity v override hm onCreate.

Khai bo activiy va to trong file AndroidManifest.xml.

Trong hm onCreate. Dng hm setContentView ch ra layout cho file java.

4. Intent
-

Intent l thng ip bt ng b, n cho php ng dng yu cu cc chc nng t nhng


component khc trong h thng Android nh cc activty hay cc service.

Ni n gin intent l cu ni gia Activity ny v Activity kia hoc gia Activity vi


mt component khc.

Intent c 2 dng l

Explicit Intent

Implicit Intent

5. Explicit Intent (intent tng minh):


-

Khi gi n xc nh r component s nhn x l.

Dng n 1 activity gi 1 activity khc.

6. Implicit Intent (intent khng tng minh)


-

Khi gi khng xc nh r component s nhn x l.

Da vo mt s thng tin m h thng s bit dng component no x l hoc cho


ngi dng chn component x l (nu c nhiu component x l c tc v ).

Lp trnh ng dng Android

[116]

7. Chy v kt thc Activity


-

Sau khi c Intent. i vi dng Activity n gin (Activity ny m Activity khc). Ta


dng hm startActivity(), truyn vo intent chuyn qua Activity khc.

Trong Activity kt thc hon ton Activity ta dng hm finish().

Nu khng dng hm finish() th Activity vn cn cho d qua Activity khc.

8. Truyn d liu
-

Khi Activity1 gi Activity2 ta c th truyn d liu t Activity1 qua cho Activity2.

Khi Activity2 kt thc c th tr ngc d liu v cho Activity1.

C Explicit Intent v Implicit Intent u c th truyn d liu.

Implicit Intent cn da vo d liu truyn quyt nh dng component no m.

Khi c nhiu chng trnh c th phc v c yu cu th Android s hin hp thoi cho


php ngi s dng chn la dng chng trnh no m.

Ta c th khai bo trong AndroidManifest.xml ng k vi h thng bit ta c th phc


v cho 1 yu cu.

VD: Chng trnh ca ta c th xem hnh nh, ta ng k vi h thng. Khi c 1 chng


trnh no cn gi chng trnh xem nh, khi h thng s a ta vo danh sch phc v cho
ngi dng chn.
9. Truyn d liu t 1 Activity sang 1 Activity khc.
Sau khi khi to Intent ta c th a d liu cho Intent gi qua Activity khc bng hm
putExtra nh sau:

Bn Activity2 tc l Activity nhn ta c th dng getIntent().getExtras() cng vi 1 hm


getString() hoc getInt() (ng kiu d liu c gi) nhn d liu.

10. Tr d liu v t Activity b gi cho Activity gi.


Khi Activity1 gi Activity2, sau khi Activity2 x l xong c th tr d liu ngc tr v cho
Activity1 trc khi kt thc. Thc hin nh sau:
Lp trnh ng dng Android

[117]

1. Trn Activity1 khi dng Intent ta dng hm startActivityForResult v truyn vo intent,


requestcode.

Trn Activity2 ta to 1 intent, a d liu vo cho intent v dng hm setResult v truyn


vo intent to.

Quay li Activity1 ta override ln hm onActivityResult. Bn trong hm ta xt


requestcode xc nh ai tr v, resultCode xc nh trng thi tr v. Sau ta c th
ly d liu tr v nh sau:

11. Gi d liu ca Implicit Intent


-

Implicit Intent cng gi d liu cho 1 Intent khng xc nh trc.

Cung cp loi hnh ng, loi d liu, thao tc thuc nhm no h thng s t tm
activiy ng k kch hot.

Implicit Intent truyn vo 2 i s: i s 1 ch ra loi hnh ng, i s th 2 l d liu dng


Uri

Ta cng c th dng hm setData a d liu vo cho Intent

Lp trnh ng dng Android

[118]

Hoc dng setType ch ra loi d liu

12. Mt s Lab
12.1

Lab 1:

Bc 1: To project mi

Bc 2: To layout cho Activity1

Bc 3: To layout cho Activity2 (res/layout/activity2.xml)

Lp trnh ng dng Android

[119]

Bc 4: Vit code cho activity1

Lp trnh ng dng Android

[120]

Bc 5: Vit code cho activity2

Bc 6: Chy ng dng

Lp trnh ng dng Android

[121]

12.2

Lab 2: (Dng Implicit Intent)

Bc 1: To project

Bc 2: To layout

Lp trnh ng dng Android

[122]

Bc 3: Vit code

Bc 4: Chy ng dng

Lp trnh ng dng Android

[123]

12.3

Lab 3 (Truyn d liu gia cc Activity)

Bc 1: To project mi

Bc 2: To layout chnh

Lp trnh ng dng Android

[124]

Bc 3: To layout mi

Lp trnh ng dng Android

[125]

Bc 4: Vit code cho MainActivity.java

Lp trnh ng dng Android

[126]

Bc 5: Vit code cho Activity_Canchi.java

Lp trnh ng dng Android

[127]

Bc 6: Chy ng dng

Lp trnh ng dng Android

[128]

Lp trnh ng dng Android

[129]

SQLITE
-

Bc 1: To project mi

Bc 2: To layout chnh

Activity_main.xml:

Bc 3: To class c tn file l DataManipulator.java

Lp trnh ng dng Android

[130]

+ Click phi chut ti th mc src/com.android.sqlite


+ Chn New, Class

+ G vo tn class

+ G vo code cho class DataManipulator.class

Lp trnh ng dng Android

[131]

Trong cc function:

Lp trnh ng dng Android

[132]

Lp trnh ng dng Android

[133]

Bc 4: To layout mi res/layout/save.xml

File save.xml:

Lp trnh ng dng Android

[134]

Lp trnh ng dng Android

[135]

Bc 5: To Activity SaveData.java lu thng tin

v:

Lp trnh ng dng Android

[136]

Bc 6: To layout mi res/layout/check.xml

Lp trnh ng dng Android

[137]

check.xml:

Bc 7: To Activity CheckData.java

v:

Lp trnh ng dng Android

[138]

Lp trnh ng dng Android

[139]

Bc 8: Vit code cho MainActivity.java

+ ng dng sau khi hon thnh c cu trc th mc nh sau:

Lp trnh ng dng Android

[140]

Lp trnh ng dng Android

[141]

Bc 9: Thm tham s vo AndroidManifest.xml

Bc 10: Chy ng dng

+ Chn Insert Data

Lp trnh ng dng Android

[142]

Lp trnh ng dng Android

[143]

+ Chn Check Data

Lp trnh ng dng Android

[144]

CI T & QUN TR SQLITE TRONG FIREFOX


Vo https://addons.mozilla.org/vi/firefox/addon/sqlite-manager/

Lp trnh ng dng Android

[145]

Lp trnh ng dng Android

[146]

Lp trnh ng dng Android

[147]

Lp trnh ng dng Android

[148]

Lp trnh ng dng Android

[149]

SEND EMAIL
1. Gii thiu
-

ng dng yu cu chng ta phi c Mail Client gi mail n Mail Server ngoi


Internet.

D liu nhp s gi n Mail Client v Mail Client s gi mail i.

2. To Project
-

Chn menu : File New Project.

Chn Androind Application project Next Khai bo Project nh sau.

Hp thoi Configuration Laucher Icon Ty chn Icon Next.

Hp thoi Create Activity : Chn Activity : Blank Activity Next.

Lp trnh ng dng Android

[150]

Khai bo Activity chnh.

3. Thit k giao din


-

S dng file : activity_main.xml trong th mc layout thit k giao din.

C hai dng : Graphical layout (Giao din ha) v *.xml (Code).

Thit k giao din theo code nh sau (M file main.xml).

Lp trnh ng dng Android

[151]

Vit code trang main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textViewPhoneNo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="To : "
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editTextTo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textViewSubject"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Subject : "
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editTextSubject"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</EditText>
<TextView
android:id="@+id/textViewMessage"

Lp trnh ng dng Android

[152]

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Message : "
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editTextMessage"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:inputType="textMultiLine"
android:lines="5" />
<Button
android:id="@+id/buttonSend"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Send" />
</LinearLayout>

Hoc c th to giao din theo ha nh sau.

Lp trnh ng dng Android

[153]

4. Vit code trang Activity.java

5. Run ng dng
-

ng dng yu cu chng ta phi c Mail Client gi mail n Mail Server ngoi


Internet.

D liu nhp s gi n Mail Client v Mail Client s gi mail i.

Lp trnh ng dng Android

[154]

You might also like