Listview trong android (Bài 6)
Listview trong android là một thành phần dùng để nhóm nhiều mục (item) và hiển thị chúng trong danh sách cuộn theo chiều dọc.
Danh sách các mục được tự động chèn vào danh sách bằng cách sử dụng một adapter chứa nội dung từ một nguồn như một mảng hoặc cơ sở dữ liệu.
Listview trong android – Giới thiệu Array Adapter
Bạn có thể sử dụng adapter này khi nguồn dữ liệu của bạn là một mảng. Mặc định ArraryAdapter tạo một view cho mỗi phần tử trong mảng bằng phương thức toString() và đặt nội dung vào một TextView.
Giả sử bạn có một mảng string chứa dữ liệu được dùng để hiển thị trong một ListView. Khởi tạo một đối tượng ArrayAdapter sử dụng phương thức khởi tạo, chỉ định layout và mảng string (stringArray).
ArrayAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,stringArray);
Listview trong android – Các bước thực hiện
Bước 1: Chuẩn bị dữ liệu (Dữ liệu được chứa trong mảng hoặc trong ArrayList)
Bước 2: Tạo đối tượng ArrayAdapter liên kết layout mặc định và nguồn dữ liệu
ArrayAdapter aa = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data);
Bước 3: Gắn ArrayAdapter vào ListView
listview.setAdapter(aa);
Bước 4: Xử lý sự kiện nếu có
Listview trong android – Ví dụ mẫu
Bước 1: Tạo một Empty Activity và đặt tên ListViewActivityDemo
Bước 2: Thiết kế layout cho Activity
Bước 3: Viết xử lý cho Activity
public class ListViewActivityDemo extends AppCompatActivity {
ArrayList al;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view_demo);
// Bước 1: Chuẩn bị dữ liệu
al = new ArrayList();
al.add("Nguyễn Văn Xuân");
al.add("Trần Hạ");
al.add("Lê Thị Thu");
al.add("Huỳnh Đông");
// Bước 2: Khởi tạo đối tượng ArrayAdapter
ArrayAdapter aa = new ArrayAdapter(this,android.R.layout.simple_list_item_1, al);
// Bước 3: Gắn ArrayAdapter vào ListView
ListView lvDemo = (ListView)findViewById(R.id.lvDemo);
lvDemo.setAdapter(aa);
// Bước 4: Xử lý sự kiện long click
lvDemo.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
String data = (String) al.get(i);
Toast.makeText(ListViewActivityDemo.this,"Bạn đã chọn " + data, Toast.LENGTH_SHORT).show();
return false;
}
});
}
}
Bước 4: Build và run
Long click (chạm và giữ) một dòng trong ListView. Ví dụ chạm và giữ dòng đầu tiên.
Listview trong android – Bài tập thực hành
Xây dựng ứng dụng quản lý thông tin nhân viên. Ứng dụng cho phép quản lý các thông tin về nhân viên như họ tên, ngày tháng năm sinh, nơi sinh, địa chỉ email.
Khi chọn vào nút “>>>”, hiển thị Date picker cho phép chọn ngày tháng năm
Khi người dùng chọn vào nút “ADD”, thông tin sẽ được hiển thị vào ListView
Khi người dùng long click vào một dòng trong ListView, hiển thị hộp thoại xác nhận. Nếu người dùng chọn “YES”, thông tin của nhân viên tương ứng với dòng được chọn bị xoá ra khỏi ListView
Khi người dùng chọn nút “SAVE”, lưu thông tin từ ListView vào tập tin employees.txt.
Lưu ý:
- Mã nhân viên được tăng tự động, bắt đầu là 1.
- Tên nhân viên, ngày tháng năm sinh, nơi sinh bắt buộc nhập.
- 3. Địa chỉ email phải nhập đúng định dạng (có @).