LẬP TRÌNH DI ĐỘNG Bài 4: Một số loại widget thông dụng và cách kĩ thuật xử lý sự kiện trên widget

40 2 0
LẬP TRÌNH DI ĐỘNG Bài 4: Một số loại widget thông dụng và cách kĩ thuật xử lý sự kiện trên widget

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LẬP TRÌNH DI ĐỘNG Bài 4: số loại widget thông dụng cách kĩ thuật xử lý kiện widget Nhắc lại trước  Khái niệm: View/Widget/ViewGroup/Layout  Layout:  Là ViewGroup, có cách bố trí view bên riêng biệt, đặc trưng loại layout  Nạp từ XML code  LayoutParameters định vị trí đặt view  Các loại layout:  LinearLayout: view nằm thành hàng dọc ngang  RelativeLayout: view phụ thuộc lẫn  FrameLayout: view chồng lên vị trí (0,0) TRƯƠNG XUÂN NAM Nhắc lại trước  Các loại layout:  ScrollView & HorizontalScrollView: view cha hỗ trợ thêm trượt view lớn  TableLayout: chia hình theo lưới  Widget: TextView / EditText / Button / ImageButton / TonggleButton / CheckBox / RadioGroup & RadioButton  Cách tương tác với view qua findViewById phương thức view TRƯƠNG XUÂN NAM Nội dung ProgressBar & ProgressDialog  Hiển thị ProgressDialog  Tiến trình chạy ngầm cập nhật liệu lên ProgressBar AutoComplete TextView TimePicker/DatePicker ListView Spinner WebView Vài phương pháp xử lý kiện TRƯƠNG XUÂN NAM Phần ProgressBar & ProgressDialog TRƯƠNG XUÂN NAM ProgressBar TRƯƠNG XUÂN NAM ProgressBar  ProcessBar cung cấp thông tin phản hồi trực quan tác vụ thực thi  VD: thể phần trăm liệu xử lý  Mặc định ProcessBar chế độ Indeterminate: thể hiệu ứng xoay trịn vơ tận  Thích hợp cho tác vụ khơng xác định rõ hồn tất  Chuyển ProcessBar sang dạng ngang thêm đoạn thuộc tính sau vào XML style="@android:style/Widget.ProgressBar.Horizontal" TRƯƠNG XUÂN NAM SeekBar RatingBar  SeekBar RatingBar mở rộng ProgressBar  RatingBar hiển thị giá trị (số thực) dấu  SeekBar cho chọn giá trị trực tiếp trượt  Muốn xử lý giá trị SeekBar thay đổi: dùng SeekBar.OnSeekBarChangeListener  Một số thuộc tính thường dùng     “android:max”: giá trị tối đa ProgressBar “android:progress”: giá trị ProgressBar “android:minHeight”: chiều cao ProgressBar “android:indeterminate”: đặt chế độ vô tận TRƯƠNG XUÂN NAM Hiển thị ProgressDialog ProgressDialog: cửa sổ thị ProgressBar, đáp ứng kiện hủy nút back pb = new ProgressDialog(context); pb.setCancelable(true); pb.setMessage("File downloading "); pb.setProgressStyle( ProgressDialog.STYLE_HORIZONTAL); pb.setProgress(0); pb.setMax(100); pb.show(); TRƯƠNG XUÂN NAM Chạy ngầm cập nhật progress new Thread(new Runnable() { public void run() { for (int i = 0; i < 100; i++) { doSomethingHere(); // thực myHandler.post(new Runnable() { public void run() { myProgress.setProgress(myPercent++); } }); } } }).start(); TRƯƠNG XUÂN NAM 10 Spinner View Spinner View loại view dùng để hiển thị danh mục cho phép người dùng lựa chọn TRƯƠNG XUÂN NAM 26 Spinner View TRƯƠNG XUÂN NAM 27 Phần WebView TRƯƠNG XUÂN NAM 28 WebView  Là view hiển thị nội dung HTML, thực mã js số loại liệu online  XML file:  Cấp quyền sử dụng Internet manifest file TRƯƠNG XUÂN NAM 29 WebView TRƯƠNG XUÂN NAM 30 WebView TRƯƠNG XUÂN NAM 31 WebView  Bật hỗ trợ javascript: myWebView.getSettings().setJavaScriptEnabled(true);  Có thể từ javascript gọi method ứng dụng: Xem thêm addJavascriptInterface  WebView thân view để hiển thị trang web, browser, tác động vào trang web, android xử lý mặc định, muốn xử lý việc xem thêm WebViewClient  Cần ý số phím mặc định trường hợp WebView focus (chẳng hạn phím back) TRƯƠNG XUÂN NAM 32 Phần Vài phương pháp xử lý kiện TRƯƠNG XUÂN NAM 33 Sự kiện android  Sự kiện tạo để đáp ứng với hành động tác động từ bên ngoài, thường tương tác người dùng  Có cách để cài đặt kiện lập trình Android như:  Cài đặt hàm xử lý class Activity khai báo sử dụng layout  Cài đặt động thông qua hàm setListener class Activity  Implements Listener khai báo lớp  Dùng biến lưu trữ TRƯƠNG XUÂN NAM 34 C1: Onclick in XML TRONG FILE CODE JAVA TRONG FILE LAYOUT XML TRƯƠNG XUÂN NAM 35 C2: Inline anonymous listener TRƯƠNG XUÂN NAM 36 C3: Activity is listener TRƯƠNG XUÂN NAM 37 C4: Listener in variable TRƯƠNG XUÂN NAM 38 Một số kĩ thuật thơng dụng  Cách 5: Explicit listener class  Viết class độc lập xử lý kiện  Class inner class hoàn toàn độc lập  Cách 6: Anonymous view subclassing layout.addView(new Button(this) { @Override public boolean performClick() { // đoạn mã xử lý nút bấm … return false; } }); TRƯƠNG XUÂN NAM 39 Xử lý kiện: thảo luận  Trong cách bạn thích cách nhất? Lý do?  Hãy ưu điểm, nhược điểm cách  Khuyến cáo:  Nên sử dụng cách  Xử lý kiện khơng q lâu, hàm xử lý cần 500ms để xử lý, chuyển thành background thread tương đương  Nên tuân theo tiêu chuẩn xử lý kiện, tránh tạo trải nghiệm khác lạ (người dùng hiểu nhầm thành lỗi ứng dụng) TRƯƠNG XUÂN NAM 40 ... DatePickerDialog dpd = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker v, int y, int m, int d) { txtDate.setText(d + "-" + (m + 1) + "-" ... Hiển thị ProgressDialog ProgressDialog: cửa sổ thị ProgressBar, đáp ứng kiện hủy nút back pb = new ProgressDialog(context); pb.setCancelable(true); pb.setMessage("File downloading "); pb.setProgressStyle(... lớn  TableLayout: chia hình theo lưới  Widget: TextView / EditText / Button / ImageButton / TonggleButton / CheckBox / RadioGroup & RadioButton  Cách tương tác với view qua findViewById phương

Ngày đăng: 25/09/2022, 01:15

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan