B9: Việc cuối cùng cần làm là viết lại Activity. Tới Example.java và chỉnh sửa theo nội dung sau: Mã: package at.exam;

Similar documents
B5: Time to coding. Tới thư mục src/example.java và thay đổi nội dung file như sau: Mã: package at.exam;

B6: Time to coding. Đi tới src\at.exam tạo một class mới là CustomViewGroup với nội dung sau: Mã: package at.exam;

B3: Bên khung Package Explore bên trái đi tới thư mục res, bạn sẽ thấy có 3 thư mục con:

I. Hướng Dẫn Đăng Nhập:

HƯỚNG DẪN SỬ DỤNG ĐẦU GHI H.264 DVR VISION VS (4CH - 8CH - 16CH)

Hướng dẫn cài đặt FPT

HƯỚNG DẪN SỬ DỤNG HỆ THỐNG CẬP NHẬT CHỨNG THƯ SỐ HOTLINE:

HƯỚNG DẪN SỬ DỤNG PLESK PANEL

Cụ thể những công việc mà AndroidManifest.xml thực hiện: - Đặt tên cho Java package của ứng dụng.

Time Picker trong Android

BÀI 1: VBA LÀ GÌ? TẠO MACRO, ỨNG DỤNG CÁC HÀM TỰ TẠO (UDF), CÀI ĐẶT ADD-INS VBA là gì?

HƯỚNG DẪN CÁCH SỬ DỤNG WINDOWS MOVIE MAKER

Tình huống 1: PPPoE với Username và Password

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

TÀI LIỆU THỰC HÀNH MÔN CƠ SỞ DỮ LIỆU NÂNG CAO

Entity Framework (EF)

Internet Protocol. Bởi: Phạm Nguyễn Bảo Nguyên

STACK và QUEUE. Lấy STACK

Cài đặt và cấu hình StarWind iscsi trên Windows. iscsi SAN là gì?

HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM DIỆT VIRUS AVIRA

Bài Thực hành Asp.Net - Buổi 1 - Trang: 1

HƯỚNG DẪN SỬ DỤNG NHANH MINDJET MIND MANAGER

Lab01: M V C Lưu ý: Để thực hành, các bạn phải cài Visual Studio 2013 trở lên mới hỗ trợ MVC5.

BÀI TẬP THỰC HÀNH LẬP TRÌNH WINDOWS C#

SIMULATE AND CONTROL ROBOT

Tạo repository mới. The working tree. The staging index. Lệnh git init tạo một repository loại git. tại thư mục hiện tại: $ git init

Cập nhật ResultSet trong JDBC

Kỹ thuật thu nhỏ đối tượng trong Design (Layout)

ĐỌC, GHI XML VỚI C# TRONG ADO.NET --- SỬ DỤNG VISUAL STUDIO

Giáo trình này được biên dịch theo sách hướng dẫn của Sun Light. Vì là hướng dẫn kỹ thuật, trong này những thuật ngữ kỹ thuật bằng tiếng Anh tôi chỉ

Phần 1: Hướng dẫn sử dụng PictureBox tạo Slide Show

Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

Tạo Project với MPLAB

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG HOSTING PLESK PANEL

BELGIUM ONLINE APPOINTMENT

BẢO MẬT TRONG SQL SERVER

Online Appointment System will work better with below conditions/ Hệ thống đặt hẹn online sẽ hoạt động tốt hơn với điều kiện sau đây:

LAB IP SLA Bài 1. Bùi Quốc Kỳ ***

HƢỚNG DẪN TRIỂN KHAI KASPERSKY - MOBILE DEVICE MANAGEMENT

Nhấn nút New để tạo 1 biến mới Trang 17

Tính kế thừa-2. Bởi: Thanh Hiền Vũ. Định nghĩa lại các thành viên lớp cơ sở trong một lớp dẫn xuất:

CẤU TRÚC DỮ LIỆU NÂNG CAO

Chapter 4 Menus, Functions And Common Dialog

Chương 5. Network Layer 19/09/2016 1

GV: Phạm Đình Sắc or

Khoa KH & KTMT Bộ môn Kỹ Thuật Máy Tính

BÀI THỰC HÀNH SỐ 1. Quản trị tập tin: 1/ Tạo các thư mục sau: Bài tập thực hành linux Linuxlab. bt1 bt11 bt111. bt121. bt12. bh1 bh11 bh111.

Dọn "rác" Windows 7 vào dịp cuối năm

Đa ngôn ngữ (Internationalization) trong Servlet

SIEMENS INDUSTRIAL NETWORKS

Thông tin liên hệ: Yahoo mail: Gmail:

BÀI LAB ĐỔI TÊN DOMAIN

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

1 Bước 1: Test thử kit LaunchPad.

Bài tập căn bản Visual Basic.Net Vòng lặp. txtn. txtketqua. btntinh. txtn. txtketqua. btntinh. Trang 1

LẬP TRÌNH WINDOWS FORM VỚI CÁC CONTROL NÂNG CAO (Các control trình bày dữ liệu dưới dạng danh sách)

NHẬP MÔN LẬP TRÌNH KHOA HỌC DỮ LIỆU. Bài 10: Thư viện Pandas (2)

Bài tập lớn số 1. Giả lập bộ định thời

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

Tài liệu hướng dẫn: Stored Procedure

Nội dung chính của chương. Các công nghệ đĩa cứng Cấu tạo vật lý của đĩa cứng Cấu tạo logic của đĩa cứng Cài đặt đĩa cứng như thế nào?

Bài thực hành số 2 QUYỀN và ROLE

HƯỚNG DẪN QUẢN TRỊ HỆ THỐNG

Bài 13: C++11. EE3490: Kỹ thuật lập trình HK1 2017/2018 TS. Đào Trung Kiên ĐH Bách khoa Hà Nội

PHÁT TRIỂN ỨNG DỤNG WEB

CHƯƠNG 2: CÁC ĐẶC ĐIỂM VỀ MÔI TRƯỜNG PHÁT TRIỂN (IDE)

HỆ THỐNG FILE TRÊN PC

LÂ P TRI NH WEB ASP.NET

dụng một chính sách, điều này giúp dễ dàng quản lý và cung cấp tính năng Load Balancing (cân bằng tải) phục vụ tốt hơn các yêu cầu của tổ chức.

- Chạy file cài đặt: kerio-kwf-whql win32.exe. Hộp thoại Choose Setup Language chọn English (United States), chọn

Parallels Cloud Server 6.0

Google Search Engine. 12/24/2014 Google Search Engine 1

Exceptions. Outline 7/31/2012. Exceptions. Exception handling is an important aspect of objectoriented. Chapter 10 focuses on:

1 Radio Button Radio Group, CheckBox, Spinner

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

Mô hình dữ liệu quan hệ (Relational data model)

Chương 7. Application Layer. Tài liệu : Forouzan, Data Communication and Networking

Lecture 12. Trees (1/2) Nội dung bài học:

Môn Học: Cơ Sở Dữ Liệu 2. Chương 3 LẤY DỮ LIỆU TỪ NHIỀU NGUỒN

INTENT. ImageView là thành phần giúp hiển thị một hình ảnh lên giao diện người dùng. Để đặt hình ảnh cho nó ta sử dụng một trong các phương thức sau:

MỤC LỤC. Giáo trình Thiết kế web Trang 1

Chương 5. Network Layer. Phần 1 - Địa chỉ IPv4. Tài liệu : Forouzan, Data Communication and Networking

Bộ môn MMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

Bài 7: Các cấu trúc điều khiển

Tìm hiểu Group Policy Object và các ví dụ

HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG KASPERSKY SECURITY CENTER. Version

Cấu hình Router FTTH ---X---

Bài 10: Cấu trúc dữ liệu

Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MINICHAT. Bài giảng 3. Trang1. Khoa Khoa Học Và Kỹ Thuật Máy Tính

METAPOST. 1.1 Cấu trúc file Metapost. 1.2 Cấu trúc trong Preamble. beginfig(...) endfig;... extra_beginfig(...) extra_endfig... begingraph(...

Phần 2. SỬ DỤNG POWERPOINT ĐỂ CHUẨN BỊ NỘI DUNG TRÌNH BÀY

BÀI 6 LÀM VIỆC VỚI THÀNH PHẦN MỞ RỘNG CỦA CSS3

CHAPTER 6: DANH SÁCH LIÊN KẾT (LINKED LISTS)

Giao tiếp giữa các tiến trình

[ASP.NET] MVC Framework và ví dụ minh họa

Khoa Công Nghệ Thông Tin Trường Đại Học Cần Thơ. Những hỗ trợ tiên tiến khác của SQL. Đỗ Thanh Nghị

LINQ TO SQL & ASP.NET

MACRO- TẬP LỆNH. Microsoft Access 2010 Chương 7:

SPEAKING SUPPLEMENTS

NHÚNG. Vi ñiều khiển BM Kỹ Thuật ðiện Tử - ðh Bách Khoa TP.HCM 2

Transcription:

B9: Việc cuối cùng cần làm là viết lại Activity. Tới Example.java và chỉnh sửa theo nội dung sau: Mã: package at.exam; import java.util.arraylist; import android.app.activity; import android.app.alertdialog; import android.content.dialoginterface; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.view; import android.view.view.onclicklistener; import android.widget.arrayadapter; import android.widget.button; import android.widget.edittext; import android.widget.listview; public class Example extends Activity { //Các hằng dùng cho tạo Option Menu private static final int DELETE_WORK = Menu.FIRST; private static final int ABOUT = Menu.FIRST + 2; ArrayList<Work> array; ListWorkAdapter arrayadapter; @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); array = new ArrayList<Work>(); arrayadapter = new ListWorkAdapter(this,

R.layout.list, array); final EditText workenter = (EditText) findviewbyid(r.id.work_enter); final EditText houredit = (EditText) findviewbyid(r.id.hour_edit); final EditText minuteedit = (EditText) findviewbyid(r.id.minute_edit); final Button button = (Button) findviewbyid(r.id.button); //Tạo list view cho danh sách công việc final ListView list = (ListView) findviewbyid(r.id.list); list.setadapter(arrayadapter); OnClickListener add = new OnClickListener() { @Override public void onclick(view v) { if (workenter.gettext().tostring().equals("") houredit.gettext().tostring().equals("") minuteedit.gettext().tostring().equals("")) { AlertDialog.Builder builder = new AlertDialog.Builder(Example.this); builder.settitle("info missing"); builder.setmessage("please enter all information of the work"); builder.setpositivebutton("continue", new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int which) { // TODO Auto-generated method stub );

builder.show(); else { String workcontent = workenter.gettext().tostring(); String timecontent = houredit.gettext().tostring() + ":" + minuteedit.gettext().tostring(); Work work = new Work(workContent, timecontent); array.add(0, work); arrayadapter.notifydatasetchanged(); workenter.settext(""); houredit.settext(""); minuteedit.settext(""); ; button.setonclicklistener(add); //Tạo Option Menu public boolean oncreateoptionsmenu(menu menu) { super.oncreateoptionsmenu(menu); menu.add(0, DELETE_WORK, 0,"Delete" ).seticon(android.r.drawable.ic_delete); menu.add(0, ABOUT, 0,"About" ).seticon(android.r.drawable.ic_menu_info_details); return true; //Xử lý sự kiện khi các option trong Option Menu được lựa chọn public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) {

case DELETE_WORK: { deletecheckedwork(); case ABOUT: { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.settitle("vietandroid"); builder.setmessage("author:" + "\n" + " Nguyen Anh Tuan" + "\n" + "SOURCE:" + "\n" + " diendan.vietandroid.com"); builder.setpositivebutton("close", new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int which) { ); builder.seticon(android.r.drawable.ic_dialog_info); builder.show(); return true; private void deletecheckedwork() { if (array.size() > 0) { for (int i = 0; i < array.size(); i++) { if (i > array.size()) { if (array.get(i).ischecked()) { array.remove(i); arrayadapter.notifydatasetchanged(); continue;

OK. Vậy là xong. Option Menu là menu ẩn chỉ hiện ra khi bạn nhấn nút Menu của điện thoại. Option Menu rất tiện trong việc đưa ra các tùy chỉnh, giống như khi bạn nhấn phím Esc khi đang chơi game trên PC vậy. Các bạn có thể lưu ý là thay vì sử dụng ArrayList<String> như trước mình đã thay bằng ArrayList<Work> và trong khởi tạo đối tượng arrayadapter thì đối số thứ 2 là R.layout.list thay vì android.r.layout.simple_list_item_1, nghĩa là chúng ta đã sử dụng layout do mình tự tạo thay vì layout Android cung cấp sẵn cho hiển thị các thành phần của ListView. Nếu chạy thử, các bạn có thể thấy khi ta đánh dấu vào checkbox của 1 thành phần trong list, rồi nhấn Menu và chọn delete thì thành phần sẽ bị gỡ bỏ khỏi danh sách.