SlideShare a Scribd company logo
1 of 22
Thiết kế giao diện trên Android
MultiUni
Trần Vũ Tất Bình
Tổng quan
• Trong Android, dùng Activity để hiển thị màn
hình.
• Mỗi activity sẽ chứa các View theo dạng cấu
trúc cây, nghĩa là một Layout gốc chứa các
view/layout con bên trong hoặc chỉ có 1 view
duy nhất. (lưu ý Layout cũng là một view nhé)
• Có thể thiết kế giao diện trong code java hoặc
trong file xml trong thư mục layout.
Tree view
Layout mẫu của helloworld
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent”>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=“@string/hello“ />
</LinearLayout>
Một số thuộc tính cơ bản
• Layout_width, layout_height: chiều rộng của
view (fill_parent là to bằng kích thước của
layout chứa view này, wrap_content là vừa đủ
nội dung cần hiển thị của view)
• Orientation: với LinearLayout, việc sắp xếp
các view là nằm kề nhau theo hàng ngang hoặc
hàng dọc, ta khai báo orientation để chọn sắp
theo kiểu nào (horizontal/vertical)
Một số thuộc tính cơ bản
• Gravity: thuộc tính này qui định các view nằm
bên trong layout sẽ đặt theo vị trí nào so với
layout(trung tâm, trái , phải, trên dưới…)
• Weight: để các view phan chia tỉ lệ diện tích
hiển thị trên màn hình (tỉ lệ tính theo weight
của từng view trên tổng số weight, các view ko
khai báo weight thì sẽ xem qua width và
height)
Ví dụ cơ bản
• Các bạn vào link này lấy code cho vào ứng
dụng, lưu ý đọc thêm các dòng giải thích tiếng
Anh nhé
http://developer.android.com/resources/tutorial
s/views/hello-linearlayout.html
Giao diện với LinearLayout
• Giả sử bạn cần thiết kế một màn hình như sau:
Giao diện với LinearLayout
• Với LinearLayout (LL), các view bên trong nó được đặt kề
nhau theo hàng ngang hoặc hàng dọc (cần lưu ý đặc điểm này)
• Với ví dự vừa rồi, ta thấy cách phân tích như sau:
– Nguyên tắc chủ yếu là phân nhóm các View liên tiếp kề nhau (như 3
TextView kề nhau theo hàng dọc hoặc hàng ngang trong ví dụ trên)
vào trong một LL, phân rã từ lớn đến nhỏ.
– Như vậy màn hình gồm 1 LL lớn bao bên ngoài, nhìn thấy bên trong
chia thanh 2 phần trên dưới rõ ràng vậy thuộc tính của LL này là dạng
dọc, sau đó chia đôi ra và phân tích tiếp.
– Phần bên trên lại chia thành 2 nữa theo hàng ngang  là một LL dạng
ngang, lại chia đôi: một bên là 1 ImageView (vì chỉ có 1 view nên ko
cần bỏ vào trong LL), một bên lại là 1 LL chứa 3 TextView theo hàng
dọc.
– Nửa bên dưới ta thấy rõ ràng chứa 3 TextView kề nhau theo hàng
ngang  cho vào 1 LL dạng ngang là xong. 
Giao diện với LinearLayout
• Xem cây:
Thực hành tại chỗ
• Làm một layout hiển thị như trong hình:
• Các bước như sau:
– Phân tích thành phần layout trên giấy (thảo luận)
– Phân tích đặc điểm các view
– Add thêm resource ảnh
– Thử trước với với tab layout (khi view file xml
trong eclipse)
– Đưa vào thực thi trên máy, đánh giá.
Một số loại layout khác
• FrameLayout: các view bên trong được qui
định vị trí bằng khoảng cách so với biên trái và
trên so với layout, các view có thể đè lên nhau.
• RelativeLayout: các view được thiết kế dựa
trên quan hệ giứa chúng với nhau và với
layout chứa chúng.
• AbsoluteLayout: dành cho bạn nào làm nhiều
với C#, nhưng ko khuyến khích với Android
nhé.
…
Lưu ý khi thiết kế giao diện
• Hạn chế độ sau của cây
• Với các Layout phức tạp, đừng dùng
RelativeLayout
• Nên chèn vào dữ liệu tạm để xem trước layout
hiển thị ra sao bên tab layout (trong eclipse),
nhưng xong rồi thì nhớ xóa dữ liệu tạm đi.
• FrameLayout có vấn đề với background
• Muốn tìm thuộc tính gì, bấm “android:” rồi đợi
suggestion sổ ra xem.
Code nhanh một số ví dụ
• Thử cùng nhau ngồi code nhanh nhé (khi đã
hiểu rồi thì làm sẽ rất nhanh thôi)
http://developer.android.com/resources/tutorials/vie
ws/hello-formstuff.html
http://developer.android.com/resources/tutorials/vie
ws/hello-webview.html
List
• Rất hay dùng trong Android. Đặc biệt các ứng
dụng cần lưu trữ và hiển thị nhiều dữ liệu.
• List là một danh sách các view thông thường
có cùng dạng layout đặt liền nhau.
ApiDemos
• Mở ứng dụng ApiDemos đã có sẵn:
– New android project  Create project from
existing source  Browse  mở thư mục SDK 
platforms  android-1.6  samples  ApiDemos
 OK  Finish.
– Mở thư mục project trong eclipse  src  mở
com.example.android.apis.view  mở file
List1.java
List1
• Trong code của List1, các bạn tách bạch phần
tạo mới ArrayAdapter ra nhé
ArrayAdapter adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mStrings);
setListAdapter(adapter);
• Adapter dùng để kết nối dữ liệu cần đưa vào
list với layout hiển thị và cung cấp cho
ListView hiển thị.
• Sau khi tạo xong adapter, truyền vào cho list
hiển thị (dòng code bên dưới)
List1
• Với đoạn tạo một adapter, ta phân tích ra:
– this: context, lúc nào làm view cũng cần rồi
– android.R.layout.simple_list_item_1: layout để hiển
thị mỗi item trong list, ở đây chỉ có một TextView
– mStrings: mảng các chuỗi kí tự, là dữ liệu cần hiển thị
• Giải thích đoạn tạo adapter như sau: tạo một
adapter mới với context của activity hiện tại, dùng
layout simple_list_item_1 để hiển thị mỗi item trong
list, dữ liệu đưa vào lấy từ mảng các chuỗi mStrings
List1
• Tạo một project mới, copy code List1 bỏ qua,
rồi làm thêm các thao tác sau:
– Tạo 1 file layout có 1 TextView và 1 ImageView
– Trong TextView thêm dòng này
android:id=“@+id/text”
– Sửa lại đoạn tạo mới adapter cho nó dùng cái
layout vừa tạo. (tìm xem có cái constructor nào
giúp chỉ chính xác đến cái TextView trong layout
hay ko)
Dạng này: ArrayAdapter(Context context, int resource,
int textViewResourceId, T[] objects)
– Chạy ứng dụng
List1
• Giải thích:
– Với code mẫu ban đầu, layout chỉ có một view duy
nhất là TextView nên bạn ko cần khai báo gì khác
ngoài layout và đưa dữ liệu dạng mảng String vào,
adapter sẽ tự hiểu và xử lý.
– Với yêu cầu sau này, layout của bạ có nhiều hơn 1
view, bạn cần truyền thêm id của TextView vào (ở
đây là R.id.text) để adapter có thể hiểu bạn muốn dữ
liệu của bạn được truyền vào view nào trong
layout.
List14
• Mở List14 ra, đọc và chạy thử.
Với mục đích giúp cho các bạn
không đến tham dự lớp vẫn có thể
hiểu được bài giảng kỹ càng nên
trong slide sẽ có nhiều đoạn chú
thích hơi dài.


More Related Content

Similar to 3.thiet ke giao dien tren android

Hướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren Android
Hướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren AndroidHướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren Android
Hướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren AndroidWendy587439
 
Slide bài giảng lập trình Android DTU - Phần 2 (Thiết kế giao diện)
Slide bài giảng lập trình Android DTU - Phần 2 (Thiết kế giao diện)Slide bài giảng lập trình Android DTU - Phần 2 (Thiết kế giao diện)
Slide bài giảng lập trình Android DTU - Phần 2 (Thiết kế giao diện)Techacademy Software
 
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptxNMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptxLnNguynThnh4
 
Introduction to data statistics with r - Part I (in Vietnamese)
Introduction to data statistics with r - Part I (in Vietnamese)Introduction to data statistics with r - Part I (in Vietnamese)
Introduction to data statistics with r - Part I (in Vietnamese)Quang Nguyen
 
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpSức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpTuyet Tam
 
Các phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxCác phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxdong92356
 
Bai1_GioiThieuOOP.pptx
Bai1_GioiThieuOOP.pptxBai1_GioiThieuOOP.pptx
Bai1_GioiThieuOOP.pptxHLan34
 
Giới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramGiới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramHuy Vũ
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlTráng Hà Viết
 
Hệ thống thông tin quản lý
Hệ thống thông tin quản lýHệ thống thông tin quản lý
Hệ thống thông tin quản lýHọc Huỳnh Bá
 
Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT NguynMinh294
 
Sử dụng API Leaflet chi tiết các chức năng
Sử dụng API Leaflet chi tiết các chức năngSử dụng API Leaflet chi tiết các chức năng
Sử dụng API Leaflet chi tiết các chức năngHao CT
 

Similar to 3.thiet ke giao dien tren android (20)

Hướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren Android
Hướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren AndroidHướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren Android
Hướng Dẫn Lập Trình Android: 3. Thiet ke giao dien tren Android
 
Slide bài giảng lập trình Android DTU - Phần 2 (Thiết kế giao diện)
Slide bài giảng lập trình Android DTU - Phần 2 (Thiết kế giao diện)Slide bài giảng lập trình Android DTU - Phần 2 (Thiết kế giao diện)
Slide bài giảng lập trình Android DTU - Phần 2 (Thiết kế giao diện)
 
Uml diagram type
Uml diagram typeUml diagram type
Uml diagram type
 
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptxNMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
 
Presentation
PresentationPresentation
Presentation
 
Introduction to data statistics with r - Part I (in Vietnamese)
Introduction to data statistics with r - Part I (in Vietnamese)Introduction to data statistics with r - Part I (in Vietnamese)
Introduction to data statistics with r - Part I (in Vietnamese)
 
Decorator
DecoratorDecorator
Decorator
 
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpSức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
 
Các phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxCác phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptx
 
Bai1_GioiThieuOOP.pptx
Bai1_GioiThieuOOP.pptxBai1_GioiThieuOOP.pptx
Bai1_GioiThieuOOP.pptx
 
Giới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramGiới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagram
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
Postgre Diagram
Postgre DiagramPostgre Diagram
Postgre Diagram
 
Mau slide
Mau slideMau slide
Mau slide
 
OOP_Bai13(vi).pdf
OOP_Bai13(vi).pdfOOP_Bai13(vi).pdf
OOP_Bai13(vi).pdf
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về uml
 
Bài 8: ListView & Binding
Bài 8: ListView & BindingBài 8: ListView & Binding
Bài 8: ListView & Binding
 
Hệ thống thông tin quản lý
Hệ thống thông tin quản lýHệ thống thông tin quản lý
Hệ thống thông tin quản lý
 
Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT
 
Sử dụng API Leaflet chi tiết các chức năng
Sử dụng API Leaflet chi tiết các chức năngSử dụng API Leaflet chi tiết các chức năng
Sử dụng API Leaflet chi tiết các chức năng
 

More from Justin Hoang

Tổng quan tài liệu Hướng dẫn hệ thống BMS
Tổng quan tài liệu Hướng dẫn hệ thống BMSTổng quan tài liệu Hướng dẫn hệ thống BMS
Tổng quan tài liệu Hướng dẫn hệ thống BMSJustin Hoang
 
Tam bien kieu Phap
Tam bien kieu PhapTam bien kieu Phap
Tam bien kieu PhapJustin Hoang
 
Huong dan su dung Adobe Presenter
Huong dan su dung Adobe PresenterHuong dan su dung Adobe Presenter
Huong dan su dung Adobe PresenterJustin Hoang
 
Giao trinh corel draw
Giao trinh corel drawGiao trinh corel draw
Giao trinh corel drawJustin Hoang
 
7. xu ly bat dong bo
7. xu ly bat dong bo7. xu ly bat dong bo
7. xu ly bat dong boJustin Hoang
 
5. broadcast receiver
5. broadcast receiver5. broadcast receiver
5. broadcast receiverJustin Hoang
 
2.bat dau voi hello world
2.bat dau voi hello world2.bat dau voi hello world
2.bat dau voi hello worldJustin Hoang
 
1.gioi thieu ve android sdk
1.gioi thieu ve android sdk1.gioi thieu ve android sdk
1.gioi thieu ve android sdkJustin Hoang
 
Hacking your Android (slides)
Hacking your Android (slides)Hacking your Android (slides)
Hacking your Android (slides)Justin Hoang
 
Tutorial How to change the icon
Tutorial How to change the iconTutorial How to change the icon
Tutorial How to change the iconJustin Hoang
 
Android chapter 02 - Setup to emulator
Android chapter 02 - Setup to emulatorAndroid chapter 02 - Setup to emulator
Android chapter 02 - Setup to emulatorJustin Hoang
 
Cach in file auto cad
Cach in file auto cadCach in file auto cad
Cach in file auto cadJustin Hoang
 

More from Justin Hoang (13)

Tổng quan tài liệu Hướng dẫn hệ thống BMS
Tổng quan tài liệu Hướng dẫn hệ thống BMSTổng quan tài liệu Hướng dẫn hệ thống BMS
Tổng quan tài liệu Hướng dẫn hệ thống BMS
 
Tam bien kieu Phap
Tam bien kieu PhapTam bien kieu Phap
Tam bien kieu Phap
 
Huong dan su dung Adobe Presenter
Huong dan su dung Adobe PresenterHuong dan su dung Adobe Presenter
Huong dan su dung Adobe Presenter
 
Giao trinh corel draw
Giao trinh corel drawGiao trinh corel draw
Giao trinh corel draw
 
7. xu ly bat dong bo
7. xu ly bat dong bo7. xu ly bat dong bo
7. xu ly bat dong bo
 
5. broadcast receiver
5. broadcast receiver5. broadcast receiver
5. broadcast receiver
 
2.bat dau voi hello world
2.bat dau voi hello world2.bat dau voi hello world
2.bat dau voi hello world
 
1.gioi thieu ve android sdk
1.gioi thieu ve android sdk1.gioi thieu ve android sdk
1.gioi thieu ve android sdk
 
Hacking your Android (slides)
Hacking your Android (slides)Hacking your Android (slides)
Hacking your Android (slides)
 
Tutorial How to change the icon
Tutorial How to change the iconTutorial How to change the icon
Tutorial How to change the icon
 
Android chapter 02 - Setup to emulator
Android chapter 02 - Setup to emulatorAndroid chapter 02 - Setup to emulator
Android chapter 02 - Setup to emulator
 
Autocad toan tap
Autocad toan tapAutocad toan tap
Autocad toan tap
 
Cach in file auto cad
Cach in file auto cadCach in file auto cad
Cach in file auto cad
 

3.thiet ke giao dien tren android

  • 1. Thiết kế giao diện trên Android MultiUni Trần Vũ Tất Bình
  • 2. Tổng quan • Trong Android, dùng Activity để hiển thị màn hình. • Mỗi activity sẽ chứa các View theo dạng cấu trúc cây, nghĩa là một Layout gốc chứa các view/layout con bên trong hoặc chỉ có 1 view duy nhất. (lưu ý Layout cũng là một view nhé) • Có thể thiết kế giao diện trong code java hoặc trong file xml trong thư mục layout.
  • 4. Layout mẫu của helloworld <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent”> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text=“@string/hello“ /> </LinearLayout>
  • 5. Một số thuộc tính cơ bản • Layout_width, layout_height: chiều rộng của view (fill_parent là to bằng kích thước của layout chứa view này, wrap_content là vừa đủ nội dung cần hiển thị của view) • Orientation: với LinearLayout, việc sắp xếp các view là nằm kề nhau theo hàng ngang hoặc hàng dọc, ta khai báo orientation để chọn sắp theo kiểu nào (horizontal/vertical)
  • 6. Một số thuộc tính cơ bản • Gravity: thuộc tính này qui định các view nằm bên trong layout sẽ đặt theo vị trí nào so với layout(trung tâm, trái , phải, trên dưới…) • Weight: để các view phan chia tỉ lệ diện tích hiển thị trên màn hình (tỉ lệ tính theo weight của từng view trên tổng số weight, các view ko khai báo weight thì sẽ xem qua width và height)
  • 7. Ví dụ cơ bản • Các bạn vào link này lấy code cho vào ứng dụng, lưu ý đọc thêm các dòng giải thích tiếng Anh nhé http://developer.android.com/resources/tutorial s/views/hello-linearlayout.html
  • 8. Giao diện với LinearLayout • Giả sử bạn cần thiết kế một màn hình như sau:
  • 9. Giao diện với LinearLayout • Với LinearLayout (LL), các view bên trong nó được đặt kề nhau theo hàng ngang hoặc hàng dọc (cần lưu ý đặc điểm này) • Với ví dự vừa rồi, ta thấy cách phân tích như sau: – Nguyên tắc chủ yếu là phân nhóm các View liên tiếp kề nhau (như 3 TextView kề nhau theo hàng dọc hoặc hàng ngang trong ví dụ trên) vào trong một LL, phân rã từ lớn đến nhỏ. – Như vậy màn hình gồm 1 LL lớn bao bên ngoài, nhìn thấy bên trong chia thanh 2 phần trên dưới rõ ràng vậy thuộc tính của LL này là dạng dọc, sau đó chia đôi ra và phân tích tiếp. – Phần bên trên lại chia thành 2 nữa theo hàng ngang  là một LL dạng ngang, lại chia đôi: một bên là 1 ImageView (vì chỉ có 1 view nên ko cần bỏ vào trong LL), một bên lại là 1 LL chứa 3 TextView theo hàng dọc. – Nửa bên dưới ta thấy rõ ràng chứa 3 TextView kề nhau theo hàng ngang  cho vào 1 LL dạng ngang là xong. 
  • 10. Giao diện với LinearLayout • Xem cây:
  • 11. Thực hành tại chỗ • Làm một layout hiển thị như trong hình: • Các bước như sau: – Phân tích thành phần layout trên giấy (thảo luận) – Phân tích đặc điểm các view – Add thêm resource ảnh – Thử trước với với tab layout (khi view file xml trong eclipse) – Đưa vào thực thi trên máy, đánh giá.
  • 12. Một số loại layout khác • FrameLayout: các view bên trong được qui định vị trí bằng khoảng cách so với biên trái và trên so với layout, các view có thể đè lên nhau. • RelativeLayout: các view được thiết kế dựa trên quan hệ giứa chúng với nhau và với layout chứa chúng. • AbsoluteLayout: dành cho bạn nào làm nhiều với C#, nhưng ko khuyến khích với Android nhé. …
  • 13. Lưu ý khi thiết kế giao diện • Hạn chế độ sau của cây • Với các Layout phức tạp, đừng dùng RelativeLayout • Nên chèn vào dữ liệu tạm để xem trước layout hiển thị ra sao bên tab layout (trong eclipse), nhưng xong rồi thì nhớ xóa dữ liệu tạm đi. • FrameLayout có vấn đề với background • Muốn tìm thuộc tính gì, bấm “android:” rồi đợi suggestion sổ ra xem.
  • 14. Code nhanh một số ví dụ • Thử cùng nhau ngồi code nhanh nhé (khi đã hiểu rồi thì làm sẽ rất nhanh thôi) http://developer.android.com/resources/tutorials/vie ws/hello-formstuff.html http://developer.android.com/resources/tutorials/vie ws/hello-webview.html
  • 15. List • Rất hay dùng trong Android. Đặc biệt các ứng dụng cần lưu trữ và hiển thị nhiều dữ liệu. • List là một danh sách các view thông thường có cùng dạng layout đặt liền nhau.
  • 16. ApiDemos • Mở ứng dụng ApiDemos đã có sẵn: – New android project  Create project from existing source  Browse  mở thư mục SDK  platforms  android-1.6  samples  ApiDemos  OK  Finish. – Mở thư mục project trong eclipse  src  mở com.example.android.apis.view  mở file List1.java
  • 17. List1 • Trong code của List1, các bạn tách bạch phần tạo mới ArrayAdapter ra nhé ArrayAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mStrings); setListAdapter(adapter); • Adapter dùng để kết nối dữ liệu cần đưa vào list với layout hiển thị và cung cấp cho ListView hiển thị. • Sau khi tạo xong adapter, truyền vào cho list hiển thị (dòng code bên dưới)
  • 18. List1 • Với đoạn tạo một adapter, ta phân tích ra: – this: context, lúc nào làm view cũng cần rồi – android.R.layout.simple_list_item_1: layout để hiển thị mỗi item trong list, ở đây chỉ có một TextView – mStrings: mảng các chuỗi kí tự, là dữ liệu cần hiển thị • Giải thích đoạn tạo adapter như sau: tạo một adapter mới với context của activity hiện tại, dùng layout simple_list_item_1 để hiển thị mỗi item trong list, dữ liệu đưa vào lấy từ mảng các chuỗi mStrings
  • 19. List1 • Tạo một project mới, copy code List1 bỏ qua, rồi làm thêm các thao tác sau: – Tạo 1 file layout có 1 TextView và 1 ImageView – Trong TextView thêm dòng này android:id=“@+id/text” – Sửa lại đoạn tạo mới adapter cho nó dùng cái layout vừa tạo. (tìm xem có cái constructor nào giúp chỉ chính xác đến cái TextView trong layout hay ko) Dạng này: ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) – Chạy ứng dụng
  • 20. List1 • Giải thích: – Với code mẫu ban đầu, layout chỉ có một view duy nhất là TextView nên bạn ko cần khai báo gì khác ngoài layout và đưa dữ liệu dạng mảng String vào, adapter sẽ tự hiểu và xử lý. – Với yêu cầu sau này, layout của bạ có nhiều hơn 1 view, bạn cần truyền thêm id của TextView vào (ở đây là R.id.text) để adapter có thể hiểu bạn muốn dữ liệu của bạn được truyền vào view nào trong layout.
  • 21. List14 • Mở List14 ra, đọc và chạy thử.
  • 22. Với mục đích giúp cho các bạn không đến tham dự lớp vẫn có thể hiểu được bài giảng kỹ càng nên trong slide sẽ có nhiều đoạn chú thích hơi dài. 