Upload
hea
View
68
Download
0
Embed Size (px)
DESCRIPTION
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 . - PowerPoint PPT Presentation
Citation preview
Thiết kế giao diện trecircn Android
MultiUni
Trần Vũ Tất Bigravenh
Tổng quan
bull Trong Android dugraveng Activity để hiển thị magraven higravenh
bull Mỗi activity sẽ chứa caacutec View theo dạng cấu truacutec cacircy nghĩa lagrave một Layout gốc chứa caacutec viewlayout con becircn trong hoặc chỉ coacute 1 view duy nhất (lưu yacute Layout cũng lagrave một view nheacute)
bull Coacute 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
ltxml version=10 encoding=utf-8gt
ltLinearLayout xmlnsandroid=httpschemasandroidcomapkresandroid
androidorientation=vertical
androidlayout_width=fill_parent
androidlayout_height=fill_parentrdquogt
ltTextView
androidlayout_width=fill_parent
androidlayout_height=wrap_content
androidtext=ldquostringhelloldquo gt
ltLinearLayoutgt
Một số thuộc tiacutenh cơ bản
bull Layout_width layout_height chiều rộng của view (fill_parent lagrave to bằng kiacutech thước của layout chứa view nagravey wrap_content lagrave vừa đủ nội dung cần hiển thị của view)
bull Orientation với LinearLayout việc sắp xếp caacutec view lagrave nằm kề nhau theo hagraveng ngang hoặc hagraveng dọc ta khai baacuteo orientation để chọn sắp theo kiểu nagraveo (horizontalvertical)
Một số thuộc tiacutenh cơ bản
bull Gravity thuộc tiacutenh nagravey qui định caacutec view nằm becircn trong layout sẽ đặt theo vị triacute nagraveo so với layout(trung tacircm traacutei phải trecircn dướihellip)
bull Weight để caacutec view phan chia tỉ lệ diện tiacutech hiển thị trecircn magraven higravenh (tỉ lệ tiacutenh theo weight của từng view trecircn tổng số weight caacutec view ko khai baacuteo weight thigrave sẽ xem qua width vagrave height)
Viacute dụ cơ bản
bull Caacutec bạn vagraveo link nagravey lấy code cho vagraveo ứng dụng lưu yacute đọc thecircm caacutec dograveng giải thiacutech tiếng Anh nheacute httpdeveloperandroidcomresourcestutorialsviewshello-linearlayouthtml
Giao diện với LinearLayout
bull Giả sử bạn cần thiết kế một magraven higravenh như sau
Giao diện với LinearLayout
bull Với LinearLayout (LL) caacutec view becircn trong noacute được đặt kề nhau theo hagraveng ngang hoặc hagraveng dọc (cần lưu yacute đặc điểm nagravey)
bull Với viacute dự vừa rồi ta thấy caacutech phacircn tiacutech như saundash Nguyecircn tắc chủ yếu lagrave phacircn nhoacutem caacutec View liecircn tiếp kề nhau (như 3
TextView kề nhau theo hagraveng dọc hoặc hagraveng ngang trong viacute dụ trecircn) vagraveo trong một LL phacircn ratilde từ lớn đến nhỏ
ndash Như vậy magraven higravenh gồm 1 LL lớn bao becircn ngoagravei nhigraven thấy becircn trong chia thanh 2 phần trecircn dưới rotilde ragraveng vậy thuộc tiacutenh của LL nagravey lagrave dạng dọc sau đoacute chia đocirci ra vagrave phacircn tiacutech tiếp
ndash Phần becircn trecircn lại chia thagravenh 2 nữa theo hagraveng ngang lagrave một LL dạng ngang lại chia đocirci một becircn lagrave 1 ImageView (vigrave chỉ coacute 1 view necircn ko cần bỏ vagraveo trong LL) một becircn lại lagrave 1 LL chứa 3 TextView theo hagraveng dọc
ndash Nửa becircn dưới ta thấy rotilde ragraveng chứa 3 TextView kề nhau theo hagraveng ngang cho vagraveo 1 LL dạng ngang lagrave xong
Giao diện với LinearLayout
bull Xem cacircy
Thực hagravenh tại chỗ
bull Lagravem một layout hiển thị như trong higravenh
bull Caacutec bước như saundash Phacircn tiacutech thagravenh phần layout trecircn giấy (thảo luận)ndash Phacircn tiacutech đặc điểm caacutec viewndash Add thecircm resource ảnhndash Thử trước với với tab layout (khi view file xml
trong eclipse)ndash Đưa vagraveo thực thi trecircn maacutey đaacutenh giaacute
Một số loại layout khaacutec
bull FrameLayout caacutec view becircn trong được qui định vị triacute bằng khoảng caacutech so với biecircn traacutei vagrave trecircn so với layout caacutec view coacute thể đegrave lecircn nhau
bull RelativeLayout caacutec view được thiết kế dựa trecircn quan hệ giứa chuacuteng với nhau vagrave với layout chứa chuacuteng
bull AbsoluteLayout dagravenh cho bạn nagraveo lagravem nhiều với C nhưng ko khuyến khiacutech với Android nheacute
hellip
Lưu yacute khi thiết kế giao diện
bull Hạn chế độ sau của cacircybull Với caacutec Layout phức tạp đừng dugraveng
RelativeLayoutbull Necircn chegraven vagraveo dữ liệu tạm để xem trước layout
hiển thị ra sao becircn tab layout (trong eclipse) nhưng xong rồi thigrave nhớ xoacutea dữ liệu tạm đi
bull FrameLayout coacute vấn đề với backgroundbull Muốn tigravem thuộc tiacutenh gigrave bấm ldquoandroidrdquo rồi đợi
suggestion sổ ra xem
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Tổng quan
bull Trong Android dugraveng Activity để hiển thị magraven higravenh
bull Mỗi activity sẽ chứa caacutec View theo dạng cấu truacutec cacircy nghĩa lagrave một Layout gốc chứa caacutec viewlayout con becircn trong hoặc chỉ coacute 1 view duy nhất (lưu yacute Layout cũng lagrave một view nheacute)
bull Coacute 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
ltxml version=10 encoding=utf-8gt
ltLinearLayout xmlnsandroid=httpschemasandroidcomapkresandroid
androidorientation=vertical
androidlayout_width=fill_parent
androidlayout_height=fill_parentrdquogt
ltTextView
androidlayout_width=fill_parent
androidlayout_height=wrap_content
androidtext=ldquostringhelloldquo gt
ltLinearLayoutgt
Một số thuộc tiacutenh cơ bản
bull Layout_width layout_height chiều rộng của view (fill_parent lagrave to bằng kiacutech thước của layout chứa view nagravey wrap_content lagrave vừa đủ nội dung cần hiển thị của view)
bull Orientation với LinearLayout việc sắp xếp caacutec view lagrave nằm kề nhau theo hagraveng ngang hoặc hagraveng dọc ta khai baacuteo orientation để chọn sắp theo kiểu nagraveo (horizontalvertical)
Một số thuộc tiacutenh cơ bản
bull Gravity thuộc tiacutenh nagravey qui định caacutec view nằm becircn trong layout sẽ đặt theo vị triacute nagraveo so với layout(trung tacircm traacutei phải trecircn dướihellip)
bull Weight để caacutec view phan chia tỉ lệ diện tiacutech hiển thị trecircn magraven higravenh (tỉ lệ tiacutenh theo weight của từng view trecircn tổng số weight caacutec view ko khai baacuteo weight thigrave sẽ xem qua width vagrave height)
Viacute dụ cơ bản
bull Caacutec bạn vagraveo link nagravey lấy code cho vagraveo ứng dụng lưu yacute đọc thecircm caacutec dograveng giải thiacutech tiếng Anh nheacute httpdeveloperandroidcomresourcestutorialsviewshello-linearlayouthtml
Giao diện với LinearLayout
bull Giả sử bạn cần thiết kế một magraven higravenh như sau
Giao diện với LinearLayout
bull Với LinearLayout (LL) caacutec view becircn trong noacute được đặt kề nhau theo hagraveng ngang hoặc hagraveng dọc (cần lưu yacute đặc điểm nagravey)
bull Với viacute dự vừa rồi ta thấy caacutech phacircn tiacutech như saundash Nguyecircn tắc chủ yếu lagrave phacircn nhoacutem caacutec View liecircn tiếp kề nhau (như 3
TextView kề nhau theo hagraveng dọc hoặc hagraveng ngang trong viacute dụ trecircn) vagraveo trong một LL phacircn ratilde từ lớn đến nhỏ
ndash Như vậy magraven higravenh gồm 1 LL lớn bao becircn ngoagravei nhigraven thấy becircn trong chia thanh 2 phần trecircn dưới rotilde ragraveng vậy thuộc tiacutenh của LL nagravey lagrave dạng dọc sau đoacute chia đocirci ra vagrave phacircn tiacutech tiếp
ndash Phần becircn trecircn lại chia thagravenh 2 nữa theo hagraveng ngang lagrave một LL dạng ngang lại chia đocirci một becircn lagrave 1 ImageView (vigrave chỉ coacute 1 view necircn ko cần bỏ vagraveo trong LL) một becircn lại lagrave 1 LL chứa 3 TextView theo hagraveng dọc
ndash Nửa becircn dưới ta thấy rotilde ragraveng chứa 3 TextView kề nhau theo hagraveng ngang cho vagraveo 1 LL dạng ngang lagrave xong
Giao diện với LinearLayout
bull Xem cacircy
Thực hagravenh tại chỗ
bull Lagravem một layout hiển thị như trong higravenh
bull Caacutec bước như saundash Phacircn tiacutech thagravenh phần layout trecircn giấy (thảo luận)ndash Phacircn tiacutech đặc điểm caacutec viewndash Add thecircm resource ảnhndash Thử trước với với tab layout (khi view file xml
trong eclipse)ndash Đưa vagraveo thực thi trecircn maacutey đaacutenh giaacute
Một số loại layout khaacutec
bull FrameLayout caacutec view becircn trong được qui định vị triacute bằng khoảng caacutech so với biecircn traacutei vagrave trecircn so với layout caacutec view coacute thể đegrave lecircn nhau
bull RelativeLayout caacutec view được thiết kế dựa trecircn quan hệ giứa chuacuteng với nhau vagrave với layout chứa chuacuteng
bull AbsoluteLayout dagravenh cho bạn nagraveo lagravem nhiều với C nhưng ko khuyến khiacutech với Android nheacute
hellip
Lưu yacute khi thiết kế giao diện
bull Hạn chế độ sau của cacircybull Với caacutec Layout phức tạp đừng dugraveng
RelativeLayoutbull Necircn chegraven vagraveo dữ liệu tạm để xem trước layout
hiển thị ra sao becircn tab layout (trong eclipse) nhưng xong rồi thigrave nhớ xoacutea dữ liệu tạm đi
bull FrameLayout coacute vấn đề với backgroundbull Muốn tigravem thuộc tiacutenh gigrave bấm ldquoandroidrdquo rồi đợi
suggestion sổ ra xem
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Tree view
Layout mẫu của helloworld
ltxml version=10 encoding=utf-8gt
ltLinearLayout xmlnsandroid=httpschemasandroidcomapkresandroid
androidorientation=vertical
androidlayout_width=fill_parent
androidlayout_height=fill_parentrdquogt
ltTextView
androidlayout_width=fill_parent
androidlayout_height=wrap_content
androidtext=ldquostringhelloldquo gt
ltLinearLayoutgt
Một số thuộc tiacutenh cơ bản
bull Layout_width layout_height chiều rộng của view (fill_parent lagrave to bằng kiacutech thước của layout chứa view nagravey wrap_content lagrave vừa đủ nội dung cần hiển thị của view)
bull Orientation với LinearLayout việc sắp xếp caacutec view lagrave nằm kề nhau theo hagraveng ngang hoặc hagraveng dọc ta khai baacuteo orientation để chọn sắp theo kiểu nagraveo (horizontalvertical)
Một số thuộc tiacutenh cơ bản
bull Gravity thuộc tiacutenh nagravey qui định caacutec view nằm becircn trong layout sẽ đặt theo vị triacute nagraveo so với layout(trung tacircm traacutei phải trecircn dướihellip)
bull Weight để caacutec view phan chia tỉ lệ diện tiacutech hiển thị trecircn magraven higravenh (tỉ lệ tiacutenh theo weight của từng view trecircn tổng số weight caacutec view ko khai baacuteo weight thigrave sẽ xem qua width vagrave height)
Viacute dụ cơ bản
bull Caacutec bạn vagraveo link nagravey lấy code cho vagraveo ứng dụng lưu yacute đọc thecircm caacutec dograveng giải thiacutech tiếng Anh nheacute httpdeveloperandroidcomresourcestutorialsviewshello-linearlayouthtml
Giao diện với LinearLayout
bull Giả sử bạn cần thiết kế một magraven higravenh như sau
Giao diện với LinearLayout
bull Với LinearLayout (LL) caacutec view becircn trong noacute được đặt kề nhau theo hagraveng ngang hoặc hagraveng dọc (cần lưu yacute đặc điểm nagravey)
bull Với viacute dự vừa rồi ta thấy caacutech phacircn tiacutech như saundash Nguyecircn tắc chủ yếu lagrave phacircn nhoacutem caacutec View liecircn tiếp kề nhau (như 3
TextView kề nhau theo hagraveng dọc hoặc hagraveng ngang trong viacute dụ trecircn) vagraveo trong một LL phacircn ratilde từ lớn đến nhỏ
ndash Như vậy magraven higravenh gồm 1 LL lớn bao becircn ngoagravei nhigraven thấy becircn trong chia thanh 2 phần trecircn dưới rotilde ragraveng vậy thuộc tiacutenh của LL nagravey lagrave dạng dọc sau đoacute chia đocirci ra vagrave phacircn tiacutech tiếp
ndash Phần becircn trecircn lại chia thagravenh 2 nữa theo hagraveng ngang lagrave một LL dạng ngang lại chia đocirci một becircn lagrave 1 ImageView (vigrave chỉ coacute 1 view necircn ko cần bỏ vagraveo trong LL) một becircn lại lagrave 1 LL chứa 3 TextView theo hagraveng dọc
ndash Nửa becircn dưới ta thấy rotilde ragraveng chứa 3 TextView kề nhau theo hagraveng ngang cho vagraveo 1 LL dạng ngang lagrave xong
Giao diện với LinearLayout
bull Xem cacircy
Thực hagravenh tại chỗ
bull Lagravem một layout hiển thị như trong higravenh
bull Caacutec bước như saundash Phacircn tiacutech thagravenh phần layout trecircn giấy (thảo luận)ndash Phacircn tiacutech đặc điểm caacutec viewndash Add thecircm resource ảnhndash Thử trước với với tab layout (khi view file xml
trong eclipse)ndash Đưa vagraveo thực thi trecircn maacutey đaacutenh giaacute
Một số loại layout khaacutec
bull FrameLayout caacutec view becircn trong được qui định vị triacute bằng khoảng caacutech so với biecircn traacutei vagrave trecircn so với layout caacutec view coacute thể đegrave lecircn nhau
bull RelativeLayout caacutec view được thiết kế dựa trecircn quan hệ giứa chuacuteng với nhau vagrave với layout chứa chuacuteng
bull AbsoluteLayout dagravenh cho bạn nagraveo lagravem nhiều với C nhưng ko khuyến khiacutech với Android nheacute
hellip
Lưu yacute khi thiết kế giao diện
bull Hạn chế độ sau của cacircybull Với caacutec Layout phức tạp đừng dugraveng
RelativeLayoutbull Necircn chegraven vagraveo dữ liệu tạm để xem trước layout
hiển thị ra sao becircn tab layout (trong eclipse) nhưng xong rồi thigrave nhớ xoacutea dữ liệu tạm đi
bull FrameLayout coacute vấn đề với backgroundbull Muốn tigravem thuộc tiacutenh gigrave bấm ldquoandroidrdquo rồi đợi
suggestion sổ ra xem
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Layout mẫu của helloworld
ltxml version=10 encoding=utf-8gt
ltLinearLayout xmlnsandroid=httpschemasandroidcomapkresandroid
androidorientation=vertical
androidlayout_width=fill_parent
androidlayout_height=fill_parentrdquogt
ltTextView
androidlayout_width=fill_parent
androidlayout_height=wrap_content
androidtext=ldquostringhelloldquo gt
ltLinearLayoutgt
Một số thuộc tiacutenh cơ bản
bull Layout_width layout_height chiều rộng của view (fill_parent lagrave to bằng kiacutech thước của layout chứa view nagravey wrap_content lagrave vừa đủ nội dung cần hiển thị của view)
bull Orientation với LinearLayout việc sắp xếp caacutec view lagrave nằm kề nhau theo hagraveng ngang hoặc hagraveng dọc ta khai baacuteo orientation để chọn sắp theo kiểu nagraveo (horizontalvertical)
Một số thuộc tiacutenh cơ bản
bull Gravity thuộc tiacutenh nagravey qui định caacutec view nằm becircn trong layout sẽ đặt theo vị triacute nagraveo so với layout(trung tacircm traacutei phải trecircn dướihellip)
bull Weight để caacutec view phan chia tỉ lệ diện tiacutech hiển thị trecircn magraven higravenh (tỉ lệ tiacutenh theo weight của từng view trecircn tổng số weight caacutec view ko khai baacuteo weight thigrave sẽ xem qua width vagrave height)
Viacute dụ cơ bản
bull Caacutec bạn vagraveo link nagravey lấy code cho vagraveo ứng dụng lưu yacute đọc thecircm caacutec dograveng giải thiacutech tiếng Anh nheacute httpdeveloperandroidcomresourcestutorialsviewshello-linearlayouthtml
Giao diện với LinearLayout
bull Giả sử bạn cần thiết kế một magraven higravenh như sau
Giao diện với LinearLayout
bull Với LinearLayout (LL) caacutec view becircn trong noacute được đặt kề nhau theo hagraveng ngang hoặc hagraveng dọc (cần lưu yacute đặc điểm nagravey)
bull Với viacute dự vừa rồi ta thấy caacutech phacircn tiacutech như saundash Nguyecircn tắc chủ yếu lagrave phacircn nhoacutem caacutec View liecircn tiếp kề nhau (như 3
TextView kề nhau theo hagraveng dọc hoặc hagraveng ngang trong viacute dụ trecircn) vagraveo trong một LL phacircn ratilde từ lớn đến nhỏ
ndash Như vậy magraven higravenh gồm 1 LL lớn bao becircn ngoagravei nhigraven thấy becircn trong chia thanh 2 phần trecircn dưới rotilde ragraveng vậy thuộc tiacutenh của LL nagravey lagrave dạng dọc sau đoacute chia đocirci ra vagrave phacircn tiacutech tiếp
ndash Phần becircn trecircn lại chia thagravenh 2 nữa theo hagraveng ngang lagrave một LL dạng ngang lại chia đocirci một becircn lagrave 1 ImageView (vigrave chỉ coacute 1 view necircn ko cần bỏ vagraveo trong LL) một becircn lại lagrave 1 LL chứa 3 TextView theo hagraveng dọc
ndash Nửa becircn dưới ta thấy rotilde ragraveng chứa 3 TextView kề nhau theo hagraveng ngang cho vagraveo 1 LL dạng ngang lagrave xong
Giao diện với LinearLayout
bull Xem cacircy
Thực hagravenh tại chỗ
bull Lagravem một layout hiển thị như trong higravenh
bull Caacutec bước như saundash Phacircn tiacutech thagravenh phần layout trecircn giấy (thảo luận)ndash Phacircn tiacutech đặc điểm caacutec viewndash Add thecircm resource ảnhndash Thử trước với với tab layout (khi view file xml
trong eclipse)ndash Đưa vagraveo thực thi trecircn maacutey đaacutenh giaacute
Một số loại layout khaacutec
bull FrameLayout caacutec view becircn trong được qui định vị triacute bằng khoảng caacutech so với biecircn traacutei vagrave trecircn so với layout caacutec view coacute thể đegrave lecircn nhau
bull RelativeLayout caacutec view được thiết kế dựa trecircn quan hệ giứa chuacuteng với nhau vagrave với layout chứa chuacuteng
bull AbsoluteLayout dagravenh cho bạn nagraveo lagravem nhiều với C nhưng ko khuyến khiacutech với Android nheacute
hellip
Lưu yacute khi thiết kế giao diện
bull Hạn chế độ sau của cacircybull Với caacutec Layout phức tạp đừng dugraveng
RelativeLayoutbull Necircn chegraven vagraveo dữ liệu tạm để xem trước layout
hiển thị ra sao becircn tab layout (trong eclipse) nhưng xong rồi thigrave nhớ xoacutea dữ liệu tạm đi
bull FrameLayout coacute vấn đề với backgroundbull Muốn tigravem thuộc tiacutenh gigrave bấm ldquoandroidrdquo rồi đợi
suggestion sổ ra xem
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Một số thuộc tiacutenh cơ bản
bull Layout_width layout_height chiều rộng của view (fill_parent lagrave to bằng kiacutech thước của layout chứa view nagravey wrap_content lagrave vừa đủ nội dung cần hiển thị của view)
bull Orientation với LinearLayout việc sắp xếp caacutec view lagrave nằm kề nhau theo hagraveng ngang hoặc hagraveng dọc ta khai baacuteo orientation để chọn sắp theo kiểu nagraveo (horizontalvertical)
Một số thuộc tiacutenh cơ bản
bull Gravity thuộc tiacutenh nagravey qui định caacutec view nằm becircn trong layout sẽ đặt theo vị triacute nagraveo so với layout(trung tacircm traacutei phải trecircn dướihellip)
bull Weight để caacutec view phan chia tỉ lệ diện tiacutech hiển thị trecircn magraven higravenh (tỉ lệ tiacutenh theo weight của từng view trecircn tổng số weight caacutec view ko khai baacuteo weight thigrave sẽ xem qua width vagrave height)
Viacute dụ cơ bản
bull Caacutec bạn vagraveo link nagravey lấy code cho vagraveo ứng dụng lưu yacute đọc thecircm caacutec dograveng giải thiacutech tiếng Anh nheacute httpdeveloperandroidcomresourcestutorialsviewshello-linearlayouthtml
Giao diện với LinearLayout
bull Giả sử bạn cần thiết kế một magraven higravenh như sau
Giao diện với LinearLayout
bull Với LinearLayout (LL) caacutec view becircn trong noacute được đặt kề nhau theo hagraveng ngang hoặc hagraveng dọc (cần lưu yacute đặc điểm nagravey)
bull Với viacute dự vừa rồi ta thấy caacutech phacircn tiacutech như saundash Nguyecircn tắc chủ yếu lagrave phacircn nhoacutem caacutec View liecircn tiếp kề nhau (như 3
TextView kề nhau theo hagraveng dọc hoặc hagraveng ngang trong viacute dụ trecircn) vagraveo trong một LL phacircn ratilde từ lớn đến nhỏ
ndash Như vậy magraven higravenh gồm 1 LL lớn bao becircn ngoagravei nhigraven thấy becircn trong chia thanh 2 phần trecircn dưới rotilde ragraveng vậy thuộc tiacutenh của LL nagravey lagrave dạng dọc sau đoacute chia đocirci ra vagrave phacircn tiacutech tiếp
ndash Phần becircn trecircn lại chia thagravenh 2 nữa theo hagraveng ngang lagrave một LL dạng ngang lại chia đocirci một becircn lagrave 1 ImageView (vigrave chỉ coacute 1 view necircn ko cần bỏ vagraveo trong LL) một becircn lại lagrave 1 LL chứa 3 TextView theo hagraveng dọc
ndash Nửa becircn dưới ta thấy rotilde ragraveng chứa 3 TextView kề nhau theo hagraveng ngang cho vagraveo 1 LL dạng ngang lagrave xong
Giao diện với LinearLayout
bull Xem cacircy
Thực hagravenh tại chỗ
bull Lagravem một layout hiển thị như trong higravenh
bull Caacutec bước như saundash Phacircn tiacutech thagravenh phần layout trecircn giấy (thảo luận)ndash Phacircn tiacutech đặc điểm caacutec viewndash Add thecircm resource ảnhndash Thử trước với với tab layout (khi view file xml
trong eclipse)ndash Đưa vagraveo thực thi trecircn maacutey đaacutenh giaacute
Một số loại layout khaacutec
bull FrameLayout caacutec view becircn trong được qui định vị triacute bằng khoảng caacutech so với biecircn traacutei vagrave trecircn so với layout caacutec view coacute thể đegrave lecircn nhau
bull RelativeLayout caacutec view được thiết kế dựa trecircn quan hệ giứa chuacuteng với nhau vagrave với layout chứa chuacuteng
bull AbsoluteLayout dagravenh cho bạn nagraveo lagravem nhiều với C nhưng ko khuyến khiacutech với Android nheacute
hellip
Lưu yacute khi thiết kế giao diện
bull Hạn chế độ sau của cacircybull Với caacutec Layout phức tạp đừng dugraveng
RelativeLayoutbull Necircn chegraven vagraveo dữ liệu tạm để xem trước layout
hiển thị ra sao becircn tab layout (trong eclipse) nhưng xong rồi thigrave nhớ xoacutea dữ liệu tạm đi
bull FrameLayout coacute vấn đề với backgroundbull Muốn tigravem thuộc tiacutenh gigrave bấm ldquoandroidrdquo rồi đợi
suggestion sổ ra xem
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Một số thuộc tiacutenh cơ bản
bull Gravity thuộc tiacutenh nagravey qui định caacutec view nằm becircn trong layout sẽ đặt theo vị triacute nagraveo so với layout(trung tacircm traacutei phải trecircn dướihellip)
bull Weight để caacutec view phan chia tỉ lệ diện tiacutech hiển thị trecircn magraven higravenh (tỉ lệ tiacutenh theo weight của từng view trecircn tổng số weight caacutec view ko khai baacuteo weight thigrave sẽ xem qua width vagrave height)
Viacute dụ cơ bản
bull Caacutec bạn vagraveo link nagravey lấy code cho vagraveo ứng dụng lưu yacute đọc thecircm caacutec dograveng giải thiacutech tiếng Anh nheacute httpdeveloperandroidcomresourcestutorialsviewshello-linearlayouthtml
Giao diện với LinearLayout
bull Giả sử bạn cần thiết kế một magraven higravenh như sau
Giao diện với LinearLayout
bull Với LinearLayout (LL) caacutec view becircn trong noacute được đặt kề nhau theo hagraveng ngang hoặc hagraveng dọc (cần lưu yacute đặc điểm nagravey)
bull Với viacute dự vừa rồi ta thấy caacutech phacircn tiacutech như saundash Nguyecircn tắc chủ yếu lagrave phacircn nhoacutem caacutec View liecircn tiếp kề nhau (như 3
TextView kề nhau theo hagraveng dọc hoặc hagraveng ngang trong viacute dụ trecircn) vagraveo trong một LL phacircn ratilde từ lớn đến nhỏ
ndash Như vậy magraven higravenh gồm 1 LL lớn bao becircn ngoagravei nhigraven thấy becircn trong chia thanh 2 phần trecircn dưới rotilde ragraveng vậy thuộc tiacutenh của LL nagravey lagrave dạng dọc sau đoacute chia đocirci ra vagrave phacircn tiacutech tiếp
ndash Phần becircn trecircn lại chia thagravenh 2 nữa theo hagraveng ngang lagrave một LL dạng ngang lại chia đocirci một becircn lagrave 1 ImageView (vigrave chỉ coacute 1 view necircn ko cần bỏ vagraveo trong LL) một becircn lại lagrave 1 LL chứa 3 TextView theo hagraveng dọc
ndash Nửa becircn dưới ta thấy rotilde ragraveng chứa 3 TextView kề nhau theo hagraveng ngang cho vagraveo 1 LL dạng ngang lagrave xong
Giao diện với LinearLayout
bull Xem cacircy
Thực hagravenh tại chỗ
bull Lagravem một layout hiển thị như trong higravenh
bull Caacutec bước như saundash Phacircn tiacutech thagravenh phần layout trecircn giấy (thảo luận)ndash Phacircn tiacutech đặc điểm caacutec viewndash Add thecircm resource ảnhndash Thử trước với với tab layout (khi view file xml
trong eclipse)ndash Đưa vagraveo thực thi trecircn maacutey đaacutenh giaacute
Một số loại layout khaacutec
bull FrameLayout caacutec view becircn trong được qui định vị triacute bằng khoảng caacutech so với biecircn traacutei vagrave trecircn so với layout caacutec view coacute thể đegrave lecircn nhau
bull RelativeLayout caacutec view được thiết kế dựa trecircn quan hệ giứa chuacuteng với nhau vagrave với layout chứa chuacuteng
bull AbsoluteLayout dagravenh cho bạn nagraveo lagravem nhiều với C nhưng ko khuyến khiacutech với Android nheacute
hellip
Lưu yacute khi thiết kế giao diện
bull Hạn chế độ sau của cacircybull Với caacutec Layout phức tạp đừng dugraveng
RelativeLayoutbull Necircn chegraven vagraveo dữ liệu tạm để xem trước layout
hiển thị ra sao becircn tab layout (trong eclipse) nhưng xong rồi thigrave nhớ xoacutea dữ liệu tạm đi
bull FrameLayout coacute vấn đề với backgroundbull Muốn tigravem thuộc tiacutenh gigrave bấm ldquoandroidrdquo rồi đợi
suggestion sổ ra xem
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Viacute dụ cơ bản
bull Caacutec bạn vagraveo link nagravey lấy code cho vagraveo ứng dụng lưu yacute đọc thecircm caacutec dograveng giải thiacutech tiếng Anh nheacute httpdeveloperandroidcomresourcestutorialsviewshello-linearlayouthtml
Giao diện với LinearLayout
bull Giả sử bạn cần thiết kế một magraven higravenh như sau
Giao diện với LinearLayout
bull Với LinearLayout (LL) caacutec view becircn trong noacute được đặt kề nhau theo hagraveng ngang hoặc hagraveng dọc (cần lưu yacute đặc điểm nagravey)
bull Với viacute dự vừa rồi ta thấy caacutech phacircn tiacutech như saundash Nguyecircn tắc chủ yếu lagrave phacircn nhoacutem caacutec View liecircn tiếp kề nhau (như 3
TextView kề nhau theo hagraveng dọc hoặc hagraveng ngang trong viacute dụ trecircn) vagraveo trong một LL phacircn ratilde từ lớn đến nhỏ
ndash Như vậy magraven higravenh gồm 1 LL lớn bao becircn ngoagravei nhigraven thấy becircn trong chia thanh 2 phần trecircn dưới rotilde ragraveng vậy thuộc tiacutenh của LL nagravey lagrave dạng dọc sau đoacute chia đocirci ra vagrave phacircn tiacutech tiếp
ndash Phần becircn trecircn lại chia thagravenh 2 nữa theo hagraveng ngang lagrave một LL dạng ngang lại chia đocirci một becircn lagrave 1 ImageView (vigrave chỉ coacute 1 view necircn ko cần bỏ vagraveo trong LL) một becircn lại lagrave 1 LL chứa 3 TextView theo hagraveng dọc
ndash Nửa becircn dưới ta thấy rotilde ragraveng chứa 3 TextView kề nhau theo hagraveng ngang cho vagraveo 1 LL dạng ngang lagrave xong
Giao diện với LinearLayout
bull Xem cacircy
Thực hagravenh tại chỗ
bull Lagravem một layout hiển thị như trong higravenh
bull Caacutec bước như saundash Phacircn tiacutech thagravenh phần layout trecircn giấy (thảo luận)ndash Phacircn tiacutech đặc điểm caacutec viewndash Add thecircm resource ảnhndash Thử trước với với tab layout (khi view file xml
trong eclipse)ndash Đưa vagraveo thực thi trecircn maacutey đaacutenh giaacute
Một số loại layout khaacutec
bull FrameLayout caacutec view becircn trong được qui định vị triacute bằng khoảng caacutech so với biecircn traacutei vagrave trecircn so với layout caacutec view coacute thể đegrave lecircn nhau
bull RelativeLayout caacutec view được thiết kế dựa trecircn quan hệ giứa chuacuteng với nhau vagrave với layout chứa chuacuteng
bull AbsoluteLayout dagravenh cho bạn nagraveo lagravem nhiều với C nhưng ko khuyến khiacutech với Android nheacute
hellip
Lưu yacute khi thiết kế giao diện
bull Hạn chế độ sau của cacircybull Với caacutec Layout phức tạp đừng dugraveng
RelativeLayoutbull Necircn chegraven vagraveo dữ liệu tạm để xem trước layout
hiển thị ra sao becircn tab layout (trong eclipse) nhưng xong rồi thigrave nhớ xoacutea dữ liệu tạm đi
bull FrameLayout coacute vấn đề với backgroundbull Muốn tigravem thuộc tiacutenh gigrave bấm ldquoandroidrdquo rồi đợi
suggestion sổ ra xem
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Giao diện với LinearLayout
bull Giả sử bạn cần thiết kế một magraven higravenh như sau
Giao diện với LinearLayout
bull Với LinearLayout (LL) caacutec view becircn trong noacute được đặt kề nhau theo hagraveng ngang hoặc hagraveng dọc (cần lưu yacute đặc điểm nagravey)
bull Với viacute dự vừa rồi ta thấy caacutech phacircn tiacutech như saundash Nguyecircn tắc chủ yếu lagrave phacircn nhoacutem caacutec View liecircn tiếp kề nhau (như 3
TextView kề nhau theo hagraveng dọc hoặc hagraveng ngang trong viacute dụ trecircn) vagraveo trong một LL phacircn ratilde từ lớn đến nhỏ
ndash Như vậy magraven higravenh gồm 1 LL lớn bao becircn ngoagravei nhigraven thấy becircn trong chia thanh 2 phần trecircn dưới rotilde ragraveng vậy thuộc tiacutenh của LL nagravey lagrave dạng dọc sau đoacute chia đocirci ra vagrave phacircn tiacutech tiếp
ndash Phần becircn trecircn lại chia thagravenh 2 nữa theo hagraveng ngang lagrave một LL dạng ngang lại chia đocirci một becircn lagrave 1 ImageView (vigrave chỉ coacute 1 view necircn ko cần bỏ vagraveo trong LL) một becircn lại lagrave 1 LL chứa 3 TextView theo hagraveng dọc
ndash Nửa becircn dưới ta thấy rotilde ragraveng chứa 3 TextView kề nhau theo hagraveng ngang cho vagraveo 1 LL dạng ngang lagrave xong
Giao diện với LinearLayout
bull Xem cacircy
Thực hagravenh tại chỗ
bull Lagravem một layout hiển thị như trong higravenh
bull Caacutec bước như saundash Phacircn tiacutech thagravenh phần layout trecircn giấy (thảo luận)ndash Phacircn tiacutech đặc điểm caacutec viewndash Add thecircm resource ảnhndash Thử trước với với tab layout (khi view file xml
trong eclipse)ndash Đưa vagraveo thực thi trecircn maacutey đaacutenh giaacute
Một số loại layout khaacutec
bull FrameLayout caacutec view becircn trong được qui định vị triacute bằng khoảng caacutech so với biecircn traacutei vagrave trecircn so với layout caacutec view coacute thể đegrave lecircn nhau
bull RelativeLayout caacutec view được thiết kế dựa trecircn quan hệ giứa chuacuteng với nhau vagrave với layout chứa chuacuteng
bull AbsoluteLayout dagravenh cho bạn nagraveo lagravem nhiều với C nhưng ko khuyến khiacutech với Android nheacute
hellip
Lưu yacute khi thiết kế giao diện
bull Hạn chế độ sau của cacircybull Với caacutec Layout phức tạp đừng dugraveng
RelativeLayoutbull Necircn chegraven vagraveo dữ liệu tạm để xem trước layout
hiển thị ra sao becircn tab layout (trong eclipse) nhưng xong rồi thigrave nhớ xoacutea dữ liệu tạm đi
bull FrameLayout coacute vấn đề với backgroundbull Muốn tigravem thuộc tiacutenh gigrave bấm ldquoandroidrdquo rồi đợi
suggestion sổ ra xem
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Giao diện với LinearLayout
bull Với LinearLayout (LL) caacutec view becircn trong noacute được đặt kề nhau theo hagraveng ngang hoặc hagraveng dọc (cần lưu yacute đặc điểm nagravey)
bull Với viacute dự vừa rồi ta thấy caacutech phacircn tiacutech như saundash Nguyecircn tắc chủ yếu lagrave phacircn nhoacutem caacutec View liecircn tiếp kề nhau (như 3
TextView kề nhau theo hagraveng dọc hoặc hagraveng ngang trong viacute dụ trecircn) vagraveo trong một LL phacircn ratilde từ lớn đến nhỏ
ndash Như vậy magraven higravenh gồm 1 LL lớn bao becircn ngoagravei nhigraven thấy becircn trong chia thanh 2 phần trecircn dưới rotilde ragraveng vậy thuộc tiacutenh của LL nagravey lagrave dạng dọc sau đoacute chia đocirci ra vagrave phacircn tiacutech tiếp
ndash Phần becircn trecircn lại chia thagravenh 2 nữa theo hagraveng ngang lagrave một LL dạng ngang lại chia đocirci một becircn lagrave 1 ImageView (vigrave chỉ coacute 1 view necircn ko cần bỏ vagraveo trong LL) một becircn lại lagrave 1 LL chứa 3 TextView theo hagraveng dọc
ndash Nửa becircn dưới ta thấy rotilde ragraveng chứa 3 TextView kề nhau theo hagraveng ngang cho vagraveo 1 LL dạng ngang lagrave xong
Giao diện với LinearLayout
bull Xem cacircy
Thực hagravenh tại chỗ
bull Lagravem một layout hiển thị như trong higravenh
bull Caacutec bước như saundash Phacircn tiacutech thagravenh phần layout trecircn giấy (thảo luận)ndash Phacircn tiacutech đặc điểm caacutec viewndash Add thecircm resource ảnhndash Thử trước với với tab layout (khi view file xml
trong eclipse)ndash Đưa vagraveo thực thi trecircn maacutey đaacutenh giaacute
Một số loại layout khaacutec
bull FrameLayout caacutec view becircn trong được qui định vị triacute bằng khoảng caacutech so với biecircn traacutei vagrave trecircn so với layout caacutec view coacute thể đegrave lecircn nhau
bull RelativeLayout caacutec view được thiết kế dựa trecircn quan hệ giứa chuacuteng với nhau vagrave với layout chứa chuacuteng
bull AbsoluteLayout dagravenh cho bạn nagraveo lagravem nhiều với C nhưng ko khuyến khiacutech với Android nheacute
hellip
Lưu yacute khi thiết kế giao diện
bull Hạn chế độ sau của cacircybull Với caacutec Layout phức tạp đừng dugraveng
RelativeLayoutbull Necircn chegraven vagraveo dữ liệu tạm để xem trước layout
hiển thị ra sao becircn tab layout (trong eclipse) nhưng xong rồi thigrave nhớ xoacutea dữ liệu tạm đi
bull FrameLayout coacute vấn đề với backgroundbull Muốn tigravem thuộc tiacutenh gigrave bấm ldquoandroidrdquo rồi đợi
suggestion sổ ra xem
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Giao diện với LinearLayout
bull Xem cacircy
Thực hagravenh tại chỗ
bull Lagravem một layout hiển thị như trong higravenh
bull Caacutec bước như saundash Phacircn tiacutech thagravenh phần layout trecircn giấy (thảo luận)ndash Phacircn tiacutech đặc điểm caacutec viewndash Add thecircm resource ảnhndash Thử trước với với tab layout (khi view file xml
trong eclipse)ndash Đưa vagraveo thực thi trecircn maacutey đaacutenh giaacute
Một số loại layout khaacutec
bull FrameLayout caacutec view becircn trong được qui định vị triacute bằng khoảng caacutech so với biecircn traacutei vagrave trecircn so với layout caacutec view coacute thể đegrave lecircn nhau
bull RelativeLayout caacutec view được thiết kế dựa trecircn quan hệ giứa chuacuteng với nhau vagrave với layout chứa chuacuteng
bull AbsoluteLayout dagravenh cho bạn nagraveo lagravem nhiều với C nhưng ko khuyến khiacutech với Android nheacute
hellip
Lưu yacute khi thiết kế giao diện
bull Hạn chế độ sau của cacircybull Với caacutec Layout phức tạp đừng dugraveng
RelativeLayoutbull Necircn chegraven vagraveo dữ liệu tạm để xem trước layout
hiển thị ra sao becircn tab layout (trong eclipse) nhưng xong rồi thigrave nhớ xoacutea dữ liệu tạm đi
bull FrameLayout coacute vấn đề với backgroundbull Muốn tigravem thuộc tiacutenh gigrave bấm ldquoandroidrdquo rồi đợi
suggestion sổ ra xem
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Thực hagravenh tại chỗ
bull Lagravem một layout hiển thị như trong higravenh
bull Caacutec bước như saundash Phacircn tiacutech thagravenh phần layout trecircn giấy (thảo luận)ndash Phacircn tiacutech đặc điểm caacutec viewndash Add thecircm resource ảnhndash Thử trước với với tab layout (khi view file xml
trong eclipse)ndash Đưa vagraveo thực thi trecircn maacutey đaacutenh giaacute
Một số loại layout khaacutec
bull FrameLayout caacutec view becircn trong được qui định vị triacute bằng khoảng caacutech so với biecircn traacutei vagrave trecircn so với layout caacutec view coacute thể đegrave lecircn nhau
bull RelativeLayout caacutec view được thiết kế dựa trecircn quan hệ giứa chuacuteng với nhau vagrave với layout chứa chuacuteng
bull AbsoluteLayout dagravenh cho bạn nagraveo lagravem nhiều với C nhưng ko khuyến khiacutech với Android nheacute
hellip
Lưu yacute khi thiết kế giao diện
bull Hạn chế độ sau của cacircybull Với caacutec Layout phức tạp đừng dugraveng
RelativeLayoutbull Necircn chegraven vagraveo dữ liệu tạm để xem trước layout
hiển thị ra sao becircn tab layout (trong eclipse) nhưng xong rồi thigrave nhớ xoacutea dữ liệu tạm đi
bull FrameLayout coacute vấn đề với backgroundbull Muốn tigravem thuộc tiacutenh gigrave bấm ldquoandroidrdquo rồi đợi
suggestion sổ ra xem
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Một số loại layout khaacutec
bull FrameLayout caacutec view becircn trong được qui định vị triacute bằng khoảng caacutech so với biecircn traacutei vagrave trecircn so với layout caacutec view coacute thể đegrave lecircn nhau
bull RelativeLayout caacutec view được thiết kế dựa trecircn quan hệ giứa chuacuteng với nhau vagrave với layout chứa chuacuteng
bull AbsoluteLayout dagravenh cho bạn nagraveo lagravem nhiều với C nhưng ko khuyến khiacutech với Android nheacute
hellip
Lưu yacute khi thiết kế giao diện
bull Hạn chế độ sau của cacircybull Với caacutec Layout phức tạp đừng dugraveng
RelativeLayoutbull Necircn chegraven vagraveo dữ liệu tạm để xem trước layout
hiển thị ra sao becircn tab layout (trong eclipse) nhưng xong rồi thigrave nhớ xoacutea dữ liệu tạm đi
bull FrameLayout coacute vấn đề với backgroundbull Muốn tigravem thuộc tiacutenh gigrave bấm ldquoandroidrdquo rồi đợi
suggestion sổ ra xem
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Lưu yacute khi thiết kế giao diện
bull Hạn chế độ sau của cacircybull Với caacutec Layout phức tạp đừng dugraveng
RelativeLayoutbull Necircn chegraven vagraveo dữ liệu tạm để xem trước layout
hiển thị ra sao becircn tab layout (trong eclipse) nhưng xong rồi thigrave nhớ xoacutea dữ liệu tạm đi
bull FrameLayout coacute vấn đề với backgroundbull Muốn tigravem thuộc tiacutenh gigrave bấm ldquoandroidrdquo rồi đợi
suggestion sổ ra xem
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Code nhanh một số viacute dụ
bull Thử cugraveng nhau ngồi code nhanh nheacute (khi đatilde hiểu rồi thigrave lagravem sẽ rất nhanh thocirci)httpdeveloperandroidcomresourcestutorialsviewshello-formstuffhtml
httpdeveloperandroidcomresourcestutorialsviewshello-webviewhtml
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
List
bull Rất hay dugraveng trong Android Đặc biệt caacutec ứng dụng cần lưu trữ vagrave hiển thị nhiều dữ liệu
bull List lagrave một danh saacutech caacutec view thocircng thường coacute cugraveng dạng layout đặt liền nhau
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
ApiDemos
bull Mở ứng dụng ApiDemos đatilde coacute sẵnndash New android project Create project from
existing source Browse mở thư mục SDK platforms android-16 samples ApiDemos OK Finish
ndash Mở thư mục project trong eclipse src mở comexampleandroidapisview mở file List1java
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
List1
bull Trong code của List1 caacutec bạn taacutech bạch phần tạo mới ArrayAdapter ra nheacuteArrayAdapter adapter = new ArrayAdapterltStringgt(this
androidRlayoutsimple_list_item_1 mStrings)
setListAdapter(adapter)
bull Adapter dugraveng để kết nối dữ liệu cần đưa vagraveo list với layout hiển thị vagrave cung cấp cho ListView hiển thị
bull Sau khi tạo xong adapter truyền vagraveo cho list hiển thị (dograveng code becircn dưới)
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
List1
bull Với đoạn tạo một adapter ta phacircn tiacutech randash this context luacutec nagraveo lagravem view cũng cần rồindash androidRlayoutsimple_list_item_1 layout để hiển
thị mỗi item trong list ở đacircy chỉ coacute một TextViewndash mStrings mảng caacutec chuỗi kiacute tự lagrave dữ liệu cần hiển thị
bull Giải thiacutech đoạn tạo adapter như sau tạo một adapter mới với context của activity hiện tại dugraveng layout simple_list_item_1 để hiển thị mỗi item trong list dữ liệu đưa vagraveo lấy từ mảng caacutec chuỗi mStrings
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
List1
bull Tạo một project mới copy code List1 bỏ qua rồi lagravem thecircm caacutec thao taacutec saundash Tạo 1 file layout coacute 1 TextView vagrave 1 ImageViewndash Trong TextView thecircm dograveng nagravey
androidid=ldquo+idtextrdquo
ndash Sửa lại đoạn tạo mới adapter cho noacute dugraveng caacutei layout vừa tạo (tigravem xem coacute caacutei constructor nagraveo giuacutep chỉ chiacutenh xaacutec đến caacutei TextView trong layout hay ko)
Dạng nagravey ArrayAdapter(Context context int resource int textViewResourceId T[] objects)
ndash Chạy ứng dụng
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
List1
bull Giải thiacutechndash Với code mẫu ban đầu layout chỉ coacute một view duy
nhất lagrave TextView necircn bạn ko cần khai baacuteo gigrave khaacutec ngoagravei layout vagrave đưa dữ liệu dạng mảng String vagraveo adapter sẽ tự hiểu vagrave xử lyacute
ndash Với yecircu cầu sau nagravey layout của bạ coacute nhiều hơn 1 view bạn cần truyền thecircm id của TextView vagraveo (ở đacircy lagrave Ridtext) để adapter coacute thể hiểu bạn muốn dữ liệu của bạn được truyền vagraveo view nagraveo trong layout
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
List14
bull Mở List14 ra đọc vagrave chạy thử
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei
Với mục điacutech giuacutep cho caacutec bạn khocircng đến tham dự lớp vẫn coacute thể hiểu được bagravei giảng kỹ cagraveng necircn trong slide sẽ coacute nhiều đoạn chuacute
thiacutech hơi dagravei