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;

Similar documents
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;

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

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

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.

STACK và QUEUE. Lấy STACK

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

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

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

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:

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

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

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

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

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;

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

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

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?

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ỉ

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

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

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

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

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

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ì?

BELGIUM ONLINE APPOINTMENT

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

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

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

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#

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

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:

GIẢI THUẬT ĐỊNH TUYẾN (ROUTING ALGORITHM)

SIEMENS INDUSTRIAL NETWORKS

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

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

Ôn tập Thiết bị mạng và truyền thông DH07TT - Lưu hành nội bộ (không sao chép dưới mọi hình thức)

Time Picker trong Android

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

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

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

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

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

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

Tạo Project với MPLAB

LÂ P TRI NH WEB ASP.NET

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

Kích hoạt phương thức xa (RMI- Remote Method Invocation )

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

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

BẢO MẬT TRONG SQL SERVER

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

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

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

Entity Framework (EF)

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

SIMULATE AND CONTROL ROBOT

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

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

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.

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

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

Các kiểu định địa chỉ họ MSC-51

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

LINQ TO SQL & ASP.NET

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

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

BÀI LAB ĐỔI TÊN DOMAIN

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

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

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

Cập nhật ResultSet trong JDBC

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

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

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)

HỢP ĐỒNG MUA BÁN HÀNG HÓA QUỐC TẾ GV: NGUYỄN THỊ BÍCH PHƯỢNG

Bài 10. Cấu trúc liên nối. khác nhau được gọi là cấu trúc liên nối. nhu cầu trao đổi giữa các module.

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

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

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

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

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.

MA NG MA Y TI NH (Computer Networks)

LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC

TỔNG QUAN VỀ.NET VÀ C#

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

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

BÀI 4 GIAO TIẾP GIỮA CÁC TIẾN TRÌNH TRONG LINUX

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

2.4. GIAO THỨC MQTT Các khái niệm cơ bản MQTT được phát triển bởi IBM và Eurotech, phiên bản mới nhất là MQTT 3.1 MQTT (Giao vận tầm xa) là

LẬP TRÌNH 8051 SỐ HỌC VÀ LÔ GIC

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:

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

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ị

biến Global có thể được áp dụng cho tất cả các extension trong tất cả các context trong Dialplan.

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

- 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

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

Trường ĐH Khoa Học Tự Nhiên Tp. Hồ Chí Minh TRUNG TÂM TIN HỌC. Lập trình Android. Bài 1. View & Các điều khiển cơ bản. Ngành Mạng & Thiết bị di động

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

Transcription:

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; import java.util.arraylist; import android.app.activity; import android.app.alertdialog; import android.content.dialoginterface; import android.os.bundle; 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 { /** Called when the activity is first created. */ @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); //Tạo mảng để chứa String nội dung công việc và giờ final ArrayList<String> arraywork = new ArrayList<String>(); //Adapter dùng để kết nối mảng với List View final ArrayAdapter<String> arrayadapter = new ArrayAdapter<String>(this, android.r.layout.simple_list_item_1, arraywork);

//Các EditText để vào nội dung công việc được lấy về từ XML 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); //Button khi nhấn sẽ thêm công việc vào ListView final Button button = (Button) findviewbyid(r.id.button); //ListView chứa danh sách công việc final ListView list = (ListView) findviewbyid(r.id.list); //Cần set Adapter cho list để biết sẽ lấy nội dung từ mảng arraywork list.setadapter(arrayadapter); //Định nghĩa Listener xử lý sự kiện nhấn vào button OnClickListener add = new OnClickListener() { @Override public void onclick(view v) { //Nếu 1 trong 3 Edit Text không có nội dung thì hiện lên thông báo 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(); //Lấy nội dung công việc và thời gian ra từ Edit Text và đưa vào list else { String str = workenter.gettext().tostring() + " - " + houredit.gettext().tostring() + ":" + minuteedit.gettext().tostring(); arraywork.add(0,str); arrayadapter.notifydatasetchanged(); workenter.settext(""); houredit.settext(""); minuteedit.settext(""); ; //set Listener cho button button.setonclicklistener(add); Mình đã chú thích đầy đủ và đoạn code cũng khá dễ hiểu. Tuy nhiên cần lưu ý 2 vấn đề ở đây. - Khởi tạo đối tượng ArrayAdapter: Các bạn thấy đối số truyền vào là (this, android.r.layout.simple_list_item_1, arraywork). This là đối số của lớp Context

(ở đây chính là activity Example). Bạn sẽ gặp Context trong rất nhiều khởi tạo các lớp và nên hiểu Context có ý nghĩa gì. Mình xin đưa ra giải thích của anh Giáp (thank mr giaplv): Quote: Context thuộc android.content (android.content.context). Là một Interface (lớp giao tiếp) chứa hầu hết thông tin về môi trường ứng dụng của android, có nghĩa là mọi thao tác, tương tác với hệ điều hành điều phải qua lớp này. Nó là một lớp abstract (trừu tượng) cung cấp cho những lớp khác các phương thức để tương tác với hệ thống Android. Nó cho phép truy cập tới các nguồn tài nguyên (resources) đã được định nghĩa và các lớp khác. Ví dụ như nó có thể khởi tạo và chạy các activities, các broadcast và các intents,... Chúng ta coi như Contex là một lớp ở mức ứng dụng (Application level- liên quan tới hệ thống). Tóm lại context giúp chúng ta dễ dàng truy cập và tương tác tới các tài nguyên của hệ thống, các thông tin, các dịch vụ (services), các thông số cấu hình, database, wallpaper, danh bạ, cuộc gọi, kết nối, chế độ rung (vibrator),... ***sở dĩ hầu hết các lớp có liên quan tới UI (layout, button, textview, imageview, listview,...) đều pải super tới Context vì bản thân nó đảm nhiệm việc truy cập resource (R.id, R.layout,...). Nếu chúng ta không tham chiếu tới Context class thì đương nhiên không thể dùng tới các resources mà chúng ta đã tạo ra. Tiếp theo là android.r.layout.simple_list_item_1, đối này định nghĩa cách thể hiện item (ở đây là String) trong List View. Các bạn hãy ghi nhớ android.r.* là các tài nguyên (resource) có sẵn của Android cho phép bạn truy cập và sử dụng. Sau này khi hướng dẫn tạo custom View cho List View mình sẽ đề cập lại vấn đề này. Cuối cùng arraywork chính là mảng cần được bind của adapter. - AlertDialog là lớp cho phép đưa ra 1 hộp thoại, thường dùng để đưa ra thông tin hoặc cảnh báo đơn giản. Trong code mình tạo 1 builder, tạo tiêu đề (title) cho nó, đưa ra thông báo (message) và cuối cùng là tạo 1 positive button (nhưng không định nghĩa xử lý khi nhấn nút này, vì vậy nếu bạn nhấn nút thì dialog sẽ chỉ đơn giản thực hiện việc đóng lại). B6: Tiến hành chạy thử chương trình. Run as -> Android Application. Enjoy

yourself