Hướng dẫn lập trình cơ bản với Android - Bài 2
lượt xem 119
download
Trong khung Package Explorer, ở phía dưới thư mục res, bạn sẽ thấy 1 file có tên là AndroidManifest.xml. Mỗi ứng dụng đều cần có AndroidManifest.xml để mô tả những thông tin quan trọng của nó cho hệ thống Android biết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Hướng dẫn lập trình cơ bản với Android - Bài 2
- Hư ng d n l p trình cơ b n v i Android - Bài 2 http://diendan.vietandroid.com/cac-bai-hoc-co-kem-ma-nguon/409-huong- Reflink: dan-lap-trinh-co-ban-voi-android-bai-2-a.html List tutorial Bài 0 - Cài ñ t và s d ng Android v i Eclipse Bài 1 - Cơ b n Android Bài 2 - Xây d ng giao di n ñơn gi n Bài 3 - ViewGroup và Custom Adapter Bài 4 - Intent và Broadcast Receiver Bài 5 - Service Bài 6 - SQLite Bài 7 - Content Provider Hi all, Trong bài 1 mình ñã gi i thi u sơ lư c v các thành ph n cơ b n c a Android cũng như vi c s d ng XML ñ l p trình ng d ng Android. Trong bài này mình s gi i thi u thêm v Android Manifest và ñi sâu hơn v v n ñ làm vi c v i View. Android Manifest Trong khung Package Explorer, phía dư i thư m c res, b n s th y 1 file có tên là AndroidManifest.xml. M i ng d ng ñ u c n có AndroidManifest.xml ñ mô t nh ng thông tin quan tr ng c a nó cho h th ng Android bi t. Let's look closer: Mã: C th nh ng công vi c mà AndroidManifest.xml th c hi n: - ð t tên cho Java package c a ng d ng. - Mô t các thành ph n (component) c a ng d ng: activity, service, broadcast receiver ho c content provider. - Thông báo nh ng permission mà ng d ng c n có ñ truy nh p các protected API và tương tác v i các ng d ng khác. - Thông báo nh ng permission mà các ng d ng khác c n có ñ tương tác v i ng d ng hi n th i. - Thông báo level th p nh t c a Android API mà ng d ng c n ñ ch y. (Android 1.0 là level 1, 1.1 là level 2, 1.5 level 3, 1.6 level 4 và 2.0 là level 5). ... Hãy xem th file AndroidManifest.xml c a chương trình TooDo mình ñang xây d ng: www.Beenvn.com - T Sách Online
- Mã: Main Activity c a chương trình Too Do này là activity TooDo. Ngoài ra mình còn có 1 Activity khác có tên là WorkEnter ñ cho phép nh p vào th i gian và n i dung công vi c. 1 Broadcast Receiver có tên là AlarmReceiver ñ nh n alarm g i t i trong intent. Khi alarm ñư c nh n s có âm thanh và rung (vibration). T t c công vi c s ñư c vi t trong code, nhưng b t bu c b n ph i khai báo các thành ph n có trong ng d ng vào AndroidManifest n u mu n chương trình ho t ñ ng. Tương t , set permission ñ truy nh p camera, internet, ñ c contact... cũng ñ u ph i khai báo trong AM. T khóa screenOrientation cho phép thi t l p giao di n khi vào ng d ng theo chi u d c (portrait - m c ñ nh) hay ngang (landscape), theme cho phép s d ng style có s n c a android là full-screen (ko có thanh status bar n a). Intent filter là b l c dùng ñ gi i h n các intent ñư c s d ng trong activity hay receiver... Mã: B l c trên ch cho phép intent m internet v i ñư ng d n ñ nh nghĩa s n (http://www.google.com/m/products/scan) Ok, hi v ng m i ngư i ñã n m ñư c ch c năng cơ b n cũng như cách s d ng Android Manifest Working with View Trong bài 1 mình ñã gi i thi u qua cách s d ng Edit Text và Text View. Th c ch t các View còn l i cũng có cách s d ng tương t , b n s k t h p nhi u View khác nhau ñ cho ra giao di n mình mong mu n. ñây mình s ñ c p nhi u t i List View (theo ý ki n mình là View khó s www.Beenvn.com - T Sách Online
- d ng nh t). Yêu c u: Xây d ng m t chương trình cho phép nh p n i dung công vi c và th i gian r i list ra B1: V n b t ñ u b ng cách kh i t o m t Project m i: File -> New -> Android Project. Project name: Example 2 Build Target: Ch n Android 1.5 Application name: Example 2 Package name: at.exam Create Activity: Example => Kích nút Finish. B2: ði t i res/main.xml ñ xây d ng giao di n cho chương trình: Mã:
- android:layout_width="65px" android:layout_height="wrap_content" android:text="@string/minute_edit" android:typeface="normal" android:textSize="15px" android:textStyle="bold" android:padding="5px" /> Giao di n ta thi t k ñây có 1 Linear Layout làm thành ph n chính, các thành ph n con c a nó g m 1 Edit Text (dùng ñ nh p n i dung công vi c), 1 Linear Layout (l i g m các thành ph n con ñ nh p gi và phút th c hi n công vi c), 1 Button (ñ thêm n i dung công vi c vào List View) và 1 List View dùng ñ list các công vi c b n ñã nh p. T khóa lines ñư c dùng ñ c ñ nh s dòng và nên s d ng v i Edit Text thay vì dùng m i wrap_content vì n u sd wrap_content thì Edit Text s t giãn ra n u dòng nh p vào vư t gi i h n ñư ng bao (làm h ng giao di n b n thi t k ). T khóa gravity thông báo các thành ph n con s ñư c s p x p ntn thành ph n cha. ñây mình dùng "center" nghĩa là thành ph n con n m trung tâm. Hãy th thêm vào 1 Edit Text: Mã: android:gravity="center" B n s th y dòng ch nh p vào s b t ñ u t gi a c a Edit Text ch không b t ñ u t bên trái như trư c n a. T khóa padding dùng ñ cách 1 kho ng cách cho thành ph n. N u không có padding thì 2 thành ph n con thu c cùng 1 LinearLayout s ñư c x p sát nhau, nhưng n u 1 thành ph n con s d ng padding thì s t o ñư c kho ng cách v i thành ph n còn l i theo mong mu n. Ngoài ra còn có paddingLeft, paddingRight,paddingTop, paddingBottom. T khóa numeric dùng ñ gi i h n d ng ký t nh p vào. ñây mình mu n ch nh p vào ch s nên dùng "integer" T khóa maxLength dùng ñ gi i h n s ký t nh p vào. Do Edit Text này dùng ñ nh p gi nên www.Beenvn.com - T Sách Online
- maxLength="2". Ok, gi ñ n 1 chút ki n th c v các ñơn v c a dimenson: - px (pixel): ñi m ch m trên màn hình. - in (inch) - mm (milimet) - pt (point) = 1/72 m - dp (density - independent pixel): cái này hơi khó gi i thích. Nói chung dp ñư c s d ng cho nhi u ñ phân gi i, và v i ñ phân gi i 160 px/inch thì 1 dp = 1 px. - sp: g n gi ng dp, nên s d ng cho text size. Nói chung nên s d ng dp và sp ñ ñ nh nghĩa size cho các thành ph n, vì nó có t l c ñ nh v i ñ phân gi i c a màn hình. Còn n u b n ch tâm xây d ng cho 1 ñ phân gi i nh t ñ nh thì dùng px cho chính xác và ch c ch n. B3: T i values/strings.xml ch nh s a như sau: Mã: Example 2 Enter the work here Hour Minute Add work B4: T o m i colors.xml trong values v i n i dung: Mã: #cccccc OK, v y là ñã hoàn thi n ph n giao di n. Các b n có th cho ch y th ngay ñ ki m tra xem giao di n ñã như ý mu n chưa ch không c n ñ i hoàn thành c code (Run as -> Android Application). B5: Time to coding. T i thư m c src/Example.java và thay ñ i n i dung file như sau: Mã: package at.exam; import java.util.ArrayList; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; public class Example extends Activity { /** Called when the activity is first created. */ @Override www.Beenvn.com - T Sách Online
- public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //T o m ng ñ ch a String n i dung công vi c và gi final ArrayList arrayWork = new ArrayList(); //Adapter dùng ñ k t n i m ng v i List View final ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, arrayWork); //Các EditText ñ vào n i dung công vi c ñư c l y v t XML final EditText workEnter = (EditText) findViewById(R.id.work_enter); final EditText hourEdit = (EditText) findViewById(R.id.hour_edit); final EditText minuteEdit = (EditText) findViewById(R.id.minute_edit); //Button khi nh n s thêm công vi c vào ListView final Button button = (Button) findViewById(R.id.button); //ListView ch a danh sách công vi c final ListView list = (ListView) findViewById(R.id.list); //C n set Adapter cho list ñ bi t s l y n i dung t m ng arrayWork list.setAdapter(arrayAdapter); //ð nh nghĩa Listener x lý s ki n nh n vào button OnClickListener add = new OnClickListener() { @Override public void onClick(View v) { //N u 1 trong 3 Edit Text không có n i dung thì hi n lên thông báo if (workEnter.getText().toString().equals("") || hourEdit.getText().toString().equals("") || minuteEdit.getText().toString().equals("")) { AlertDialog.Builder builder = new AlertDialog.Builder(Example.this); builder.setTitle("Info missing"); builder.setMessage("Please enter all information of the work"); builder.setPositiveButton("Continue", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }); builder.show(); } //L y n i dung công vi c và th i gian ra t Edit Text và ñưa vào list else { String str = workEnter.getText().toString() + " - " www.Beenvn.com - T Sách Online
- + hourEdit.getText().toString() + ":" + minuteEdit.getText().toString(); arrayWork.add(0,str); arrayAdapter.notifyDataSetChanged(); workEnter.setText(""); hourEdit.setText(""); minuteEdit.setText(""); } } }; //set Listener cho button button.setOnClickListener(add); } } Mình ñã chú thích ñ y ñ và ño n code cũng khá d hi u. Tuy nhiên c n lưu ý 2 v n ñ ñây. - Kh i t o ñ i tư ng ArrayAdapter: Các b n th y ñ i s truy n vào là (this, android.R.layout.simple_list_item_1, arrayWork). This là ñ i s c a l p Context ( ñây chính là activity Example). B n s g p Context trong r t nhi u kh i t o các l p và nên hi u Context có ý nghĩa gì. Mình xin ñưa ra gi i thích c a anh Giáp (thank mr giaplv): Quote: Context thu c android.content (android.content.Context). Là m t Interface (l p giao ti p) ch a h u h t thông tin v môi trư ng ng d ng c a android, có nghĩa là m i thao tác, tương tác v i h ñi u hành ñi u ph i qua l p này. Nó là m t l p abstract (tr u tư ng) cung c p cho nh ng l p khác các phương th c ñ tương tác v i h th ng Android. Nó cho phép truy c p t i các ngu n tài nguyên (resources) ñã ñư c ñ nh nghĩa và các l p khác. Ví d như nó có th kh i t o và ch y các activities, các broadcast và các intents,... Chúng ta coi như Contex là m t l p m c ng d ng (Application level- liên quan t i h th ng). Tóm l i context giúp chúng ta d dàng truy c p và tương tác t i các tài nguyên c a h th ng, các thông tin, các d ch v (services), các thông s c u hình, database, wallpaper, danh b , cu c g i, k t n i, ch ñ rung (vibrator),... ***s dĩ h u h t các l p có liên quan t i UI (layout, button, textview, imageview, listview,...) ñ u p i super t i Context vì b n thân nó ñ m nhi m vi c truy c p resource (R.id, R.layout,....). N u chúng ta không tham chi u t i Context class thì ñương nhiên không th dùng t i các resources mà chúng ta ñã t o ra. Ti p theo là android.R.layout.simple_list_item_1, ñ i này ñ nh nghĩa cách th hi n item ( ñây là String) trong List View. Các b n hãy ghi nh android.R.* là các tài nguyên (resource) có s n c a Android cho phép b n truy c p và s d ng. Sau này khi hư ng d n t o custom View cho List View mình s ñ c p l i v n ñ này. Cu i cùng arrayWork chính là m ng c n ñư c bind c a adapter. - AlertDialog là l p cho phép ñưa ra 1 h p tho i, thư ng dùng ñ ñưa ra thông tin ho c c nh báo ñơn gi n. Trong code mình t o 1 builder, t o tiêu ñ (title) cho nó, ñưa ra thông báo (message) và cu i cùng là t o 1 positive button (nhưng không ñ nh nghĩa x lý khi nh n nút này, vì v y n u b n nh n nút thì dialog s ch ñơn gi n th c hi n vi c ñóng l i). B6: Ti n hành ch y th chương trình. Run as -> Android Application. Enjoy yourself www.Beenvn.com - T Sách Online
- www.Beenvn.com - T Sách Online
- www.Beenvn.com - T Sách Online
- D ñ nh bài ti p theo s hư ng d n m i ngư i cách t o custom view trong list view và option menu. www.Beenvn.com - T Sách Online
CÓ THỂ BẠN MUỐN DOWNLOAD
-
HƯỚNG DẪN LẬP TRÌNH CƠ BẢN ANDROID (TIẾNG VIỆT)
121 p | 1039 | 355
-
Hướng dẫn lập trình cơ bản với Android
121 p | 586 | 277
-
Hướng dẫn lập trình cơ bản và nâng cao với Android 1
5 p | 879 | 264
-
Hướng dẫn lập trình với Android 8
5 p | 351 | 180
-
Hướng dẫn lập trình cơ bản với Android - Bài 1
12 p | 336 | 135
-
Hướng dẫn lập trình cơ bản và nâng cao với Android 4
5 p | 252 | 113
-
Hướng dẫn lập trình với Android
145 p | 357 | 105
-
Hướng dẫn lập trình cơ bản và nâng cao với Android 18
6 p | 246 | 105
-
Hướng dẫn lập trình cơ bản và nâng cao với Android 10
5 p | 194 | 99
-
Hướng dẫn lập trình cơ bản và nâng cao với Android 16
7 p | 204 | 88
-
Hướng dẫn lập trình cơ bản và nâng cao với Android 21
5 p | 176 | 85
-
Hướng dẫn lập trình cơ bản với Android - Phần 2: Android Virtual Device
5 p | 206 | 24
-
Hướng dẫn lập trình cơ bản với Android - Phần 3: Device của Android
5 p | 119 | 14
-
Giáo trình hướng dẫn lập trình cơ bản với hệ điều hành mở Androi 3.1 p1
5 p | 105 | 13
-
Hướng dẫn lập trình cơ bản với Android - Phần 1: Cách sử dụng Android trong Eclipse
5 p | 105 | 9
-
Giáo trình hướng dẫn lập trình cơ bản với hệ điều hành mở Androi 3.1 p8
5 p | 113 | 8
-
Hướng dẫn lập trình cơ bản với Android - Phần 4: Android Activity Life Cycle
5 p | 56 | 5
-
Hướng dẫn lập trình cơ bản với Android - Phần 6: Bài tập thực hành
5 p | 64 | 5
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn