Tìm kiếm tài liệu miễn phí

Hướng dẫn lập trình cơ bản với Android - Phần 9: Bài tập thực hành

Tài liệu cung cấp cho người học các kiến thức: Bài tập thực hành, chỉnh sửa code, chạy chương trình, giao diện chương trình,... Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên đang theo học môn dùng làm tài liệu học tập và nghiên cứu. Mời các bạn cùng tham khảo chi tiết nội dung tài liệu.



Đánh giá tài liệu

0 Bạn chưa đánh giá, hãy đánh giá cho tài liệu này


  • 5 - Rất hữu ích 0

  • 4 - Tốt 0

  • 3 - Trung bình 0

  • 2 - Tạm chấp nhận 0

  • 1 - Không hữu ích 0

Mô tả

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
import
import
import
import
import
import
import
import
import

android.app.Activity;
android.app.AlertDialog;
android.content.DialogInterface;
android.os.Bundle;
android.view.View;
android.view.View.OnClickListener;
android.widget.ArrayAdapter;
android.widget.Button;
android.widget.EditText;
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 arrayWork = new
ArrayList();
//Adapter dùng để kết nối mảng với List View
final ArrayAdapter arrayAdapter = new
ArrayAdapter(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

Tài liệu cùng danh mục Kỹ thuật lập trình

Đề thi Java - Đề 9

Sr Không có chuy n nh ng ể ượ Hỏi 1. Case Study: • Việc quản lý của Ngân hàng Thương đang xem xét tự động hóa như là một phương tiện để tiết kiệm thời gian và nỗ lực cần thiết trong công việc của họ. Để đạt được điều này, các • Tạo một tài khoản mới quản lý đã có kế hoạch học hóa các giao dịch sau đây: • Rút tiền từ một tài khoản Các giám đốc điều hành của công ty và một đội ngũ chuyên gia đã chọn công ty của bạn để Cọc tiền vào một tài khoản...


Đóng tất cả các cửa sổ đang mở với 1 cú kích chuột

Thường xuyên phải mở nhiều cửa sổ của nhiều chương trình khác nhau khiến việc tắt máy trở nên rất vất vả. Sau khi công việc kết thúc, nếu không muốn mất thời gian đóng từng cửa sổ trước khi tắt máy tính, bạn có thể nhờ đến CloseAll.


An Introduction to Android for Developers

Get you Started with Android Development .Get the Environment Set Up and Working .Create Some Demo Apps (Tutorials) . Demonstrate the Tools / Environment . Introduction to the Documentation.


WINDOWS 2000 TROUBLE SHOOTING TCP/I P phần 10

Trên một mạng lưới phát sóng, OSPF sử dụng một gói tin được gọi là một thông điệp giao thức Xin chào, mà là một thông điệp truyền thông mà các bộ định tuyến xác định vị trí nhau. Một router được lựa chọn làm Designated Router (DR), và tất cả các router trao đổi định tuyến khác thông tin với DR.


Symbian OS Explained Effective C++ Programming for Smartphones phần 6

Các phương pháp của lớp này được sử dụng để gửi tin nhắn đến máy chủ. Bạn sẽ nhận thấy rằng hầu hết trong số họ được bảo vệ. Điều này là bởi vì các lớp khách hàng có thể truy cập một máy chủ sẽ thường xuất phát từ RSessionBase (ví dụ, lớp của RFS, cung cấp truy cập đến máy chủ tập tin).


MultiBooks - Tổng hợp IT - PC part 33

Tham khảo tài liệu 'multibooks - tổng hợp it - pc part 33', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả


Bài giảng Software testing: Chương 4 - ThS. Nguyễn Quốc Huy

Chương 4 cung cấp cho người học những kiến thức về môi trường kiểm thử. chương này gồm có những nội dung cơ bản sau: Tổng quan về môi trường kiểm thử, giả lập - simulation, lấy điểm chuẩn, môi trường kiểm thử,... Mời các bạn cùng tham khảo.


DISCRETE WAVELET TRANSFORMS: ALGORITHMS AND APPLICATIONS Edited by Hannu Olkkonen

Tham khảo sách 'discrete wavelet transforms: algorithms and applications edited by hannu olkkonen', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả


Learn Objective C on the Mac phần 4

Đây là tiện dụng cho hành vi đó là không bị ràng buộc một đối tượng cụ thể, nhưng là toàn cầu đến lớp. Ví dụ tốt nhất của loại thông báo phân bổ một đối tượng mới. Khi bạn muốn có một vòng tròn mới, nó phù hợp với yêu cầu lớp Circle cho rằng đối tượng mới, chứ không phải là yêu cầu một vòng tròn hiện có.


Pro Web 2.0 Mashups Remixing Data and Web Services phần 4

Cuộc gọi đáng tin cậy mối quan hệ các ứng dụng và cho phép cùng cho Flickr. Tuy nhiên, cuộc gọi không có đề cập rõ ràng của một người sử dụng ở tất cả. Không có tham số cho user_id, ví dụ. ContactLister Đó không phải vượt qua Flickr bất cứ điều gì về tài khoản Flickr của Lois là một đức tính không phải là một vấn đề.


Tài liệu mới download

Hướng dẫn thực hành Access
  • 24/03/2017
  • 91.835
  • 129
Ebook Kỹ thuật sơn đồ gỗ
  • 01/08/2012
  • 52.022
  • 691
Mẫu Bản cảnh cáo nhân viên
  • 19/05/2015
  • 84.444
  • 932

Từ khóa được quan tâm

Có thể bạn quan tâm

Lesson13: Interfaces
  • 11/08/2009
  • 32.682
  • 911
Head First Servlets and JSP phần 2
  • 22/10/2011
  • 21.486
  • 772
IT-Programing Help part 10
  • 08/11/2010
  • 43.143
  • 855

Bộ sưu tập

Danh mục tài liệu