Trong lập trình Android, sẽ có lúc bạn cần hiển thị 1 danh sách các đối tượng nào đó, ví dụ danh sách các sinh viên, danh sách các mặt hàng…Việc dùng các View bình thường để hiển thị tất cả danh sách là việc rất mất công và thời gian. Nhưng rất may trong Android đã hỗ trợ 1 loại View để làm việc này. Đó chính là ListView.
1. Hướng dẫn tạo ListView đơn giản.
Bước 1. Các bạn tạo 1 project mới có tên là ListViewSample (Bạn có thể xem các tạo 1 project tại đây)
Bước 2. Trong file xml các bạn khởi tạo 1 ListView như sau.
Bước 3. Các bạn chuyển vào file MainActivity.java và viết code để tạo listview như sau.
Bước 4. Run project và được kết quả là 1 danh sách đơn giản
2. Hướng dẫn custom ListView để hiện thị 1 danh sách phức tạp.
Trong thực tế, rất ít khi danh sách hiển thị các đối tượng chỉ có 1 thuộc tính. Vậy yêu cầu chúng ta phải custom lại ListView để hiện thì được danh sách các đối tượng có nhiều thuộc tính hơn. Các bạn hãy làm theo những bước dưới đây.
Bước 1. Khởi tạo 1 project mới có tên CustomListViewSample.
Bước 2. Tạo đối tượng (Trong Android chính là 1 class) thể hiện đối tượng mà mình muốn hiển thị. Ví dụ mình cần hiển thị danh sách các sinh viên đăng ký học tại Devpro. Ta tạo 1 class như sau. Tạo 1 đối tượng có tên là Student có các thuộc tính ID, Name, Phone sau đó tạo get/set cho đối tượng.
Xem thêm:Nội dung khoa hoc lap trinh game unity
Bước 3. Custom giao diện 1 item cho ListView
chúng ta sẽ hiển thị ảnh, tên và số điện thoại của học viên.
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http:// schemas.android.com/apk/res/android”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:layout_margin=”10dp”
android:background=”#fff”
android:orientation=”horizontal”
android:padding=”10dp”>
<ImageView
android:layout_width=”50dp”
android:layout_height=”50dp”
android:src=”@drawable/avatar” />
<LinearLayout
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:layout_marginLeft=”10dp”
android:orientation=”vertical”>
<TextView
android:id=”@+id/txtName”
android:layout_width=”fill_parent”
android:layout_height=”25dp”
android:gravity=”center_vertical”
android:text=”Toan”
android:textColor=”#000″
android:textStyle=”bold” />
<TextView
android:id=”@+id/txtPhone”
android:layout_width=”fill_parent”
android:layout_height=”25dp”
android:gravity=”center_vertical”
android:text=”0123″ />
</LinearLayout>
</LinearLayout>
Bước 4. Tạo 1 adapter có tên StudentAdapter và cấu hình cho nó như sau.
public class StudentAdapter extends BaseAdapter {
ArrayList<Student> listData;
LayoutInflater inflater;
// Hàm tạo của custom
public StudentAdapter(Context context, ArrayList<Student> listData) {
this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.listData = listData;
}
// Trả về số lượng phần tử được hiển thị trong listview
@Override
public int getCount() {
return listData.size();
}
// Trả về đối tượng được lấy theo vị trí
@Override
public Object getItem(int position) {
return listData.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
// Hàm quan trọng nhất, hiển thị giao diện của listview
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Lấy ra đối tượng cần hiển thị ở vị trí thứ position
Student item = listData.get(position);
// Khai báo các component
TextView txtName, txtPhone;
// Khởi tạo view.
if (convertView == null) {
convertView = inflater.inflate(R.layout.item_listview, parent, false);
}
txtName = (TextView) convertView.findViewById(R.id.txtName);
txtPhone = (TextView) convertView.findViewById(R.id.txtPhone);
// Set dữ liệu vào item của list view
txtName.setText(item.getName());
txtPhone.setText(item.getPhone());
return convertView;
}
}
Bước 5. sau khi đã có Adapter chúng ta vào trong file MainActivity.java và viết code như sau.
Bước 6. Sau khi đã hoàn thành các bước trên, bạn tiến hành Run Project và xem thành quả của các bạn.
Trên đây mình đã giới thiệu cho các bạn biết về listview, từ listview cơ bản đến custom 1 listview theo ý muốn. Nếu gặp khó khắn trong quá trình code, các bạn có thể tham khảo khóa học Android tại đây để có thể trở thành 1 lập trình Android chuyên nghiệp. Chúc các bạn thành công!
Gợi ý xem thêm: