Hướng dẫn lập trình cơ bản với Android - Phần 12

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.

pdf5 trang | Chuyên mục: Android | Chia sẻ: dkS00TYs | Lượt xem: 1769 | Lượt tải: 1download
Tóm tắt nội dung Hướng dẫn lập trình cơ bản với Android - Phần 12, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 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 array; 
 ListWorkAdapter arrayAdapter; 
 @Override 
 public void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.main); 
 array = new ArrayList(); 
 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(); 
 break; 
 } 
 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(); 
 break; 
 } 
 } 
 return true; 
 } 
 private void deleteCheckedWork() { 
 if (array.size() > 0) { 
 for (int i = 0; i < array.size(); i++) { 
 if (i > array.size()) { 
 break; 
 } 
 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 như trước mình đã thay 
bằng ArrayList 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. 

File đính kèm:

  • pdfHướng dẫn lập trình cơ bản với Android - Phần 12.pdf