SlideShare a Scribd company logo
ANDROID APPLICATION
          DEVELOPMENT
          Toast – Dialog, ListView & Binding




hoccungdoanhnghiep.com
Nội dung
 Toast
 Dialog
   AlertDialog
   ProgressDialog
   DatePickerDialog
   TimePickerDialog
 ListView
 Binding data to ListView



hoccungdoanhnghiep.com
Toast Notifications
 Là một dạng popup message hiển thị trên màn
    hình
   Tùy thuộc vào message mà popup toast sẽ có
    kích cỡ tương ứng khi hiển thị
   Tự động fade-in & fade-out theo thời gian được
    set trong duration
   Trong lúc hiển thị, không ảnh hưởng đến activity
    #
   Không bắt các sự kiện của người dùng


hoccungdoanhnghiep.com
Cách sử dụng Toast
 Khởi tạo một object từ class Toast bằng hàm
 makeText(): Toast t = Toast.makeText(context,
 message, duration)
   context: application context
   message: Nội dung message
   duration: Thời gian hiển thị
 Để hiển thị, gọi đến hàm show: t.show()




hoccungdoanhnghiep.com
Toast tùy biến với layout
 Toast có thể được tùy biến giao diện bằng cách
 gán layout đã được tạo sẵn cho nó:
   LayoutInflater li = getLayoutInflater();
   View v = li.inflate(R.layout.toast_layout,
      (ViewGroup)findViewById(R.id.my_toast_layout_root));
     Toast t = new Toast(getApplicationContext());
     t.setView(v);
     t.setDuration(Toast.LENGTH_LONG);
     t.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
     t.show();




hoccungdoanhnghiep.com
Dialog
 Là một cửa sổ nhỏ xuất hiện bên trên activity
  hiện tại
 Người dùng bắt buộc phải xử lý thông tin trên
  dialog trước khi có thể quay lại được activity
 Dialog nên được sử dụng dưới 1 trong các dạng
  sau:
   AlertDialog: chứa thông tin (text, list item) &
    buttons để hỏi ý kiến người dùng
   ProgressDialog: hiển thị thanh tiến trình
   DatePickerDialog: Cho phép người dùng chọn
    date
   TimePickerDialog: cho phép người dùng chọn
hoccungdoanhnghiep.com
    time
AlertDialog
 Có thể chứa các thông tin sau:
   Tiêu đề
   Nội dung message
   Tối đa 3 buttons
   List các item có thể chọn lựa (kèm theo
    checkboxes hoặc radio buttons)
 Để khởi tạo AlertDialog, ta phải sử dụng lớp con
 là AlertDialog.Builder:
   AlertDialog.Builder build = new
    AlertDialog.Builder(context)
 Sau khi build xong, thì gọi create để tạo object
 của AlertDialog từ builder đó
hoccungdoanhnghiep.com
   AlertDialog ad = build.create()
AlertDialog.Builder
 Các method quan trọng cần ghi nhớ của
 AlertDialog.Builder
   setTitle: Dùng để set title cho dialog
   setMassage: dùng để hiển thị nội dung message.
    Chú ý: Khi hiển thị message thì không set với các
    loại nội dung khác
   setCancelable: false để vô hiệu hóa nút back khi
    đang hiển thị dialog
   setPositiveButton: Hiển thị nút action thứ nhất bên
    trái
   setNegativeButton: Hiển thị nút action thứ 3 bên
    phải
hoccungdoanhnghiep.com
   setNeutralButton: Hiển thị nút action ở giữa
DatePicker Dialog
 Cung cấp cho người dùng một công cụ để chọn:
  ngày-tháng-năm tiện lợi và dễ nhìn
 Để show, khởi tạo object từ class
  DatePickerDialog với các tham số:
   current activity context, this
   callback – là object của OnDateSetListener
   year: năm khởi tạo
   month: tháng khởi tạo
   day: ngày khởi tạo




hoccungdoanhnghiep.com
TimePicker Dialog
 Cung cấp cho người dùng một công cụ để chọn:
 giờ-phút tiện lợi và dễ nhìn




hoccungdoanhnghiep.com
Progress Dialog
 Hiển thị progress animation ở dạng:
   Progress bar: với những task đã define được quá
    trình bắt đầu – kết thúc
   Spinning wheel: với những task không xác định
    được điểm kết thúc
 ProgressBar mặc định là loại spinning wheel
 Để hiển thị loại progress bar thì cần code nhiều
 hơn




hoccungdoanhnghiep.com
ProgressBar – spinning wheel
 Khởi tạo: ProgressDialog pb =
 ProgressDialog.show(ActivityContext.this, title,
 msg, indeterminate )
   ActivityContext.this
   title
   Msg
   indeterminate: set true để chỉ ra là loại không xác
    định




hoccungdoanhnghiep.com
Progress bar dialog
 Khởi tạo: ProgressDialog pd = new
  ProgressDialog(this)
 Cài đặt các properties cho pd:
   pd.setProgressStyle(ProgressDialog.STYLE_HOR
    IZONTAL): hiển thị progress dạng thanh nằm
    ngang
   pd.setMessage("Loading...”): nội dung message
    hiển thị
   pd.setCancelable(true): cho phép nhấn nút back
 Ngoài ra, cần phải có 1 background thread xử lý
 task và update progress thông qua handler
hoccungdoanhnghiep.com
Dialog
 Nếu trong màn hình có nhiều loại dialog khác
  nhau, override method onCreateDialog(int id) và
  dựa vào id đó để xác định dialog nào sẽ hiển thị
 Khi cần hiển thị dialog tương ứng với id đó, gọi
  vào hàm showDialog(id)
 Để tùy biến Dialog, khởi tạo object: Dialog d =
  new Dialog(this)
   Gán layout: d.setContentView(layout);
 Với các loại dialog có sẵn, để tùy biến layout thì
 sử dụng cách như với tùy biến Toast:
   LayoutInflater li = getLayoutInflater();
   View v = li.inflate(layout,
hoccungdoanhnghiep.com
   (ViewGroup)findViewById(layout_root));
Xử lý sự kiện trên dialog
 Các button trên dialog được xử lý sự kiện như
  các button bình thường
 Các item trên dialog cũng xử lý như bình
  thường
 Khi build dialog, tùy theo callback được gán mà
  sự kiện sẽ được bắt và xử lý tùy theo ý của LTV




hoccungdoanhnghiep.com
ListView
 Là một ViewGroup có chứa 1 danh sách các
  items bên trong, và nó có thể cuộn lên xuống
 Danh sách các items được tự động đưa vào
  dựa vào ListAdapter




hoccungdoanhnghiep.com
Binding data to ListView




hoccungdoanhnghiep.com
Bài tập
 Tự code lại toàn bộ các loại AlertDialog để kiểm
 tra các tham số của builder




hoccungdoanhnghiep.com
Tham khảo
 http://developer.android.com/reference/android/widget/
 http://developer.android.com/guide/topics/ui/dialogs.htm
 http://developer.android.com/reference/android/app/Ale
 http://developer.android.com/resources/tutorials/views/
 http://developer.android.com/resources/tutorials/views/
 http://developer.android.com/resources/tutorials/views/
 http://developer.android.com/guide/topics/ui/binding.htm




hoccungdoanhnghiep.com

More Related Content

PPT
Chuong 3 windows forms
PPT
bai giang VB cua thay Duong Van Phuoc
PDF
Bai Tap Vb
PPTX
Introduction Android For Begineer
PDF
Cs lab04 win-form assignment
PDF
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
DOC
Tai lieu huong_dan_tu_hoc_visual_studio2010
PDF
Quy tắc thiết kế giao diện và viết code C#
Chuong 3 windows forms
bai giang VB cua thay Duong Van Phuoc
Bai Tap Vb
Introduction Android For Begineer
Cs lab04 win-form assignment
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
Tai lieu huong_dan_tu_hoc_visual_studio2010
Quy tắc thiết kế giao diện và viết code C#

Viewers also liked (20)

PPT
Slide bài giảng lập trình Android DTU - Phần 1
PPT
Bài 6: Working with DATA
PPT
Bài 8: ListView & Binding
PPT
Giới thiệu Android- Bài 2
PPT
Bài 4: Event handle, Action & Intent
PPTX
Lập trình android
PPT
7. xu ly bat dong bo
PPT
Android tutorial
PPTX
Android chapter 02 - Setup to emulator
PPTX
Mobile programming
PPT
Slide bài giảng lập trình Android DTU - Phần 2 (Thiết kế giao diện)
PPT
Slide bài giảng lập trình Android DTU - Phần 5 (Broadcastreceiver)
PPT
Slide bài giảng lập trình Android DTU - Phần 2 (Bắt đầu với Helloworld)
PPTX
Bài 1: Phát triển ứng dụng trên thiết bị di động
PPTX
lập trình di động
PPT
Slide bài giảng lập trình Android DTU - Phần 4 (Activity)
PPTX
Seminar: quản lý thời gian
PPT
Bài 1: Giới thiệu Android
DOC
Tổng quan tài liệu Hướng dẫn hệ thống BMS
ODP
Android Nâng cao-Bài 5:Notification Multiresolution Multilanguage
Slide bài giảng lập trình Android DTU - Phần 1
Bài 6: Working with DATA
Bài 8: ListView & Binding
Giới thiệu Android- Bài 2
Bài 4: Event handle, Action & Intent
Lập trình android
7. xu ly bat dong bo
Android tutorial
Android chapter 02 - Setup to emulator
Mobile programming
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 5 (Broadcastreceiver)
Slide bài giảng lập trình Android DTU - Phần 2 (Bắt đầu với Helloworld)
Bài 1: Phát triển ứng dụng trên thiết bị di động
lập trình di động
Slide bài giảng lập trình Android DTU - Phần 4 (Activity)
Seminar: quản lý thời gian
Bài 1: Giới thiệu Android
Tổng quan tài liệu Hướng dẫn hệ thống BMS
Android Nâng cao-Bài 5:Notification Multiresolution Multilanguage
Ad

Similar to Bài 7: Toast – Dialog, ListView & Binding (20)

PPT
Chương 4.1- SDI MDI.ppt it007 uit dhqghcm
PPT
IT120-2. Bắt đầu với Hello World
PPT
Lập trình Android cơ bản bằng tiếng Việt
PDF
Bài 2: Hướng dẫn làm việc với các điều khiển - Giáo trình FPT - Có ví dụ kèm ...
DOC
Bai tap java_script-html-2016
DOC
Vb6 16 (9)
PDF
Oop unit 12 đồ họa và xử lý sự kiện
PDF
Giaotrinh vb
PDF
Hdth03 ltudql02-user control
PDF
Thực hành lập trình Visual Bacsic
PDF
Bài tập Lập trinh viên thiết bị di động
DOC
Bài tập javascript
PDF
Chuan viet code va thiet ke giao dien trong C#
PDF
Giáo trình visual basic
PDF
Cơ bản về visual basic
PDF
Chuong vb.net
PPT
User Control
PDF
Giao trinh thuc hanh - Delphi 7
PDF
Bai giangvb.net
PDF
Bai giangvb.net
Chương 4.1- SDI MDI.ppt it007 uit dhqghcm
IT120-2. Bắt đầu với Hello World
Lập trình Android cơ bản bằng tiếng Việt
Bài 2: Hướng dẫn làm việc với các điều khiển - Giáo trình FPT - Có ví dụ kèm ...
Bai tap java_script-html-2016
Vb6 16 (9)
Oop unit 12 đồ họa và xử lý sự kiện
Giaotrinh vb
Hdth03 ltudql02-user control
Thực hành lập trình Visual Bacsic
Bài tập Lập trinh viên thiết bị di động
Bài tập javascript
Chuan viet code va thiet ke giao dien trong C#
Giáo trình visual basic
Cơ bản về visual basic
Chuong vb.net
User Control
Giao trinh thuc hanh - Delphi 7
Bai giangvb.net
Bai giangvb.net
Ad

Recently uploaded (20)

PPTX
Powerpoint cho Ke toan tai chinh KET307_Bai1_SV.pptx
PPT
Bài giảng Cơ sở dữ liệu Table trong Access
PPTX
14. thoát vị bẹn nghẹt bệnh học ngoại khoa.pptx
PDF
Vision - Language - Model-- - Ebook.pdf
PPTX
24. 9cqbq2reu57m5igbsz-signature-40d40b8bd600bcde0d0584523c684ec4933c280de74a...
PPT
Bài giảng Power Point 2003, hướng dẫn học tập
DOC
Chương 1 Tính tương đổi của chuyển động.doc
PDF
Quyền-biểu-tình-của-công-dân-theo-hiến-pháp-Việt-Nam.pdf
PPTX
1 CHƯƠNG MÔT- KHÁI LUẬN VỀ TRIẾT HỌC (1) [Read-Only].pptx
PPTX
Xuất huyết tiêu hoá Đại học Y Hà Nội.pptx
PDF
BÁO CÁO THỰC TẬP KỸ SƯ 2 ĐỀ TÀI TÌM HIỂU QUY TRÌNH CÔNG NGHỆ SẢN XUẤT BÁNH SN...
PPTX
The Fasciola Hepatica - medical prasitology
PPTX
Chương 2 - Mô hình thực thể kết hợp.pptx
DOCX
Báo cáo thực tập công ty Ah-GlobalGroup vị trí Data Analyst
PPTX
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
PPT
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
PPTX
Phân bố Nhị Thức Chuyên Đề Toán Lớp 12 Chân trời sáng tạo Tập 2
PPTX
SLIDE BV CHÍNH THỨC LATSKH - note.pptx
PPTX
Flashcard giải pháp đơn giản – trực quan – hiệu quả, giúp học từ vựng theo t...
PPTX
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx
Powerpoint cho Ke toan tai chinh KET307_Bai1_SV.pptx
Bài giảng Cơ sở dữ liệu Table trong Access
14. thoát vị bẹn nghẹt bệnh học ngoại khoa.pptx
Vision - Language - Model-- - Ebook.pdf
24. 9cqbq2reu57m5igbsz-signature-40d40b8bd600bcde0d0584523c684ec4933c280de74a...
Bài giảng Power Point 2003, hướng dẫn học tập
Chương 1 Tính tương đổi của chuyển động.doc
Quyền-biểu-tình-của-công-dân-theo-hiến-pháp-Việt-Nam.pdf
1 CHƯƠNG MÔT- KHÁI LUẬN VỀ TRIẾT HỌC (1) [Read-Only].pptx
Xuất huyết tiêu hoá Đại học Y Hà Nội.pptx
BÁO CÁO THỰC TẬP KỸ SƯ 2 ĐỀ TÀI TÌM HIỂU QUY TRÌNH CÔNG NGHỆ SẢN XUẤT BÁNH SN...
The Fasciola Hepatica - medical prasitology
Chương 2 - Mô hình thực thể kết hợp.pptx
Báo cáo thực tập công ty Ah-GlobalGroup vị trí Data Analyst
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
Phân bố Nhị Thức Chuyên Đề Toán Lớp 12 Chân trời sáng tạo Tập 2
SLIDE BV CHÍNH THỨC LATSKH - note.pptx
Flashcard giải pháp đơn giản – trực quan – hiệu quả, giúp học từ vựng theo t...
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx

Bài 7: Toast – Dialog, ListView & Binding

  • 1. ANDROID APPLICATION DEVELOPMENT Toast – Dialog, ListView & Binding hoccungdoanhnghiep.com
  • 2. Nội dung  Toast  Dialog  AlertDialog  ProgressDialog  DatePickerDialog  TimePickerDialog  ListView  Binding data to ListView hoccungdoanhnghiep.com
  • 3. Toast Notifications  Là một dạng popup message hiển thị trên màn hình  Tùy thuộc vào message mà popup toast sẽ có kích cỡ tương ứng khi hiển thị  Tự động fade-in & fade-out theo thời gian được set trong duration  Trong lúc hiển thị, không ảnh hưởng đến activity #  Không bắt các sự kiện của người dùng hoccungdoanhnghiep.com
  • 4. Cách sử dụng Toast  Khởi tạo một object từ class Toast bằng hàm makeText(): Toast t = Toast.makeText(context, message, duration)  context: application context  message: Nội dung message  duration: Thời gian hiển thị  Để hiển thị, gọi đến hàm show: t.show() hoccungdoanhnghiep.com
  • 5. Toast tùy biến với layout  Toast có thể được tùy biến giao diện bằng cách gán layout đã được tạo sẵn cho nó:  LayoutInflater li = getLayoutInflater();  View v = li.inflate(R.layout.toast_layout, (ViewGroup)findViewById(R.id.my_toast_layout_root));  Toast t = new Toast(getApplicationContext());  t.setView(v);  t.setDuration(Toast.LENGTH_LONG);  t.setGravity(Gravity.CENTER_VERTICAL, 0, 0);  t.show(); hoccungdoanhnghiep.com
  • 6. Dialog  Là một cửa sổ nhỏ xuất hiện bên trên activity hiện tại  Người dùng bắt buộc phải xử lý thông tin trên dialog trước khi có thể quay lại được activity  Dialog nên được sử dụng dưới 1 trong các dạng sau:  AlertDialog: chứa thông tin (text, list item) & buttons để hỏi ý kiến người dùng  ProgressDialog: hiển thị thanh tiến trình  DatePickerDialog: Cho phép người dùng chọn date  TimePickerDialog: cho phép người dùng chọn hoccungdoanhnghiep.com time
  • 7. AlertDialog  Có thể chứa các thông tin sau:  Tiêu đề  Nội dung message  Tối đa 3 buttons  List các item có thể chọn lựa (kèm theo checkboxes hoặc radio buttons)  Để khởi tạo AlertDialog, ta phải sử dụng lớp con là AlertDialog.Builder:  AlertDialog.Builder build = new AlertDialog.Builder(context)  Sau khi build xong, thì gọi create để tạo object của AlertDialog từ builder đó hoccungdoanhnghiep.com  AlertDialog ad = build.create()
  • 8. AlertDialog.Builder  Các method quan trọng cần ghi nhớ của AlertDialog.Builder  setTitle: Dùng để set title cho dialog  setMassage: dùng để hiển thị nội dung message. Chú ý: Khi hiển thị message thì không set với các loại nội dung khác  setCancelable: false để vô hiệu hóa nút back khi đang hiển thị dialog  setPositiveButton: Hiển thị nút action thứ nhất bên trái  setNegativeButton: Hiển thị nút action thứ 3 bên phải hoccungdoanhnghiep.com  setNeutralButton: Hiển thị nút action ở giữa
  • 9. DatePicker Dialog  Cung cấp cho người dùng một công cụ để chọn: ngày-tháng-năm tiện lợi và dễ nhìn  Để show, khởi tạo object từ class DatePickerDialog với các tham số:  current activity context, this  callback – là object của OnDateSetListener  year: năm khởi tạo  month: tháng khởi tạo  day: ngày khởi tạo hoccungdoanhnghiep.com
  • 10. TimePicker Dialog  Cung cấp cho người dùng một công cụ để chọn: giờ-phút tiện lợi và dễ nhìn hoccungdoanhnghiep.com
  • 11. Progress Dialog  Hiển thị progress animation ở dạng:  Progress bar: với những task đã define được quá trình bắt đầu – kết thúc  Spinning wheel: với những task không xác định được điểm kết thúc  ProgressBar mặc định là loại spinning wheel  Để hiển thị loại progress bar thì cần code nhiều hơn hoccungdoanhnghiep.com
  • 12. ProgressBar – spinning wheel  Khởi tạo: ProgressDialog pb = ProgressDialog.show(ActivityContext.this, title, msg, indeterminate )  ActivityContext.this  title  Msg  indeterminate: set true để chỉ ra là loại không xác định hoccungdoanhnghiep.com
  • 13. Progress bar dialog  Khởi tạo: ProgressDialog pd = new ProgressDialog(this)  Cài đặt các properties cho pd:  pd.setProgressStyle(ProgressDialog.STYLE_HOR IZONTAL): hiển thị progress dạng thanh nằm ngang  pd.setMessage("Loading...”): nội dung message hiển thị  pd.setCancelable(true): cho phép nhấn nút back  Ngoài ra, cần phải có 1 background thread xử lý task và update progress thông qua handler hoccungdoanhnghiep.com
  • 14. Dialog  Nếu trong màn hình có nhiều loại dialog khác nhau, override method onCreateDialog(int id) và dựa vào id đó để xác định dialog nào sẽ hiển thị  Khi cần hiển thị dialog tương ứng với id đó, gọi vào hàm showDialog(id)  Để tùy biến Dialog, khởi tạo object: Dialog d = new Dialog(this)  Gán layout: d.setContentView(layout);  Với các loại dialog có sẵn, để tùy biến layout thì sử dụng cách như với tùy biến Toast:  LayoutInflater li = getLayoutInflater();  View v = li.inflate(layout, hoccungdoanhnghiep.com (ViewGroup)findViewById(layout_root));
  • 15. Xử lý sự kiện trên dialog  Các button trên dialog được xử lý sự kiện như các button bình thường  Các item trên dialog cũng xử lý như bình thường  Khi build dialog, tùy theo callback được gán mà sự kiện sẽ được bắt và xử lý tùy theo ý của LTV hoccungdoanhnghiep.com
  • 16. ListView  Là một ViewGroup có chứa 1 danh sách các items bên trong, và nó có thể cuộn lên xuống  Danh sách các items được tự động đưa vào dựa vào ListAdapter hoccungdoanhnghiep.com
  • 17. Binding data to ListView hoccungdoanhnghiep.com
  • 18. Bài tập  Tự code lại toàn bộ các loại AlertDialog để kiểm tra các tham số của builder hoccungdoanhnghiep.com
  • 19. Tham khảo  http://developer.android.com/reference/android/widget/  http://developer.android.com/guide/topics/ui/dialogs.htm  http://developer.android.com/reference/android/app/Ale  http://developer.android.com/resources/tutorials/views/  http://developer.android.com/resources/tutorials/views/  http://developer.android.com/resources/tutorials/views/  http://developer.android.com/guide/topics/ui/binding.htm hoccungdoanhnghiep.com