[SQLite] - CRUD lớp - sinh viên - part 2 - Hiển thị dữ liệu

Code: Default | Auth: 03cd82

Các bước làm việc với ListView

  1. Chuẩn bị nguồn dữ liệu: Đã có trong CSDL SQLite
  2. Tạo lớp đối đượng DTO để làm việc với từng phần tử: Đã có
  3. Tạo ListView trong layout để hiển thị danh sách: Đã có ở phần trước
  4. Tạo layout cho 1 phần tử trong listView để hiển thị thông tin của 1 bản ghi: Chưa có
  5. Tạo Adapter để đổ dữ liệu lên View: Chưa có
  6. Lấy dữ liệu từ SQLite đổ vào Adapter: Chưa có
  7. Gắn Adapter vào ListView: Chưa có

 

Chúng ta đang làm việc với bảng Lớp nên sẽ tạo 1 layout cho phần tử lớp

  1. Trong thư mục res/layout tạo 1 file resource layout xml mới đặt tên là: custom_list_item_lop.xml
  2. Nội dung file như sau:
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:orientation="vertical"

    android:layout_margin="10dp"

    android:background="#00BCD4"

    >

    <TextView

        android:id="@+id/tv_id_lop"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"/>

    <TextView

        android:id="@+id/tv_ten_lop"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"/>

    <TextView

        android:id="@+id/tv_nganh"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"/>

    

</LinearLayout>

 

  1. Tạo Adapter
    1. Trong thư mục java tạo package mới đặt tên là Adapter để chứa các file code chuyên về adapter
    2. Tạo 1 file TbLopAdapter.java trong thư mục Adapter và cho lớp này kế thừa lớp BaseAdapter
    3. Sau đó overwrite các phương thức theo mặc định bằng cách bấm chuột vào tên lớp sau đó bấm Alt + Enter để hiển thị lựa chọn thì chọn Implement methods --> chọn tất cả 4 phương thức được gợi ý ra.
    4. Trong lớp này khai báo 1 thuộc tính chứa danh sách kiểu dữ liệu ArrayList và để là final:
       final ArrayList<TbLop> tbLopArrayList;

Sau khi viết xong dòng này phần mềm gợi ý tạo lớp khởi tạo thì bấm vòa dòng này và bấm Alt + Enter --> chọn Add constructor params

là được hàm khởi tạo.

    1. Sửa lại hàm getCount() thành
                return tbLopArrayList.size();
    1. Sửa lại hàm getItem
                   return tbLopArrayList.get(position);
    1. Sửa lại hàm getItemId
                return tbLopArrayList.get(position).getId_lop();

 

    1. Viết code cho hàm getView

Code hàm getView

Đến bước này là xong phần Adapter

  1. Lấy dữ liệu trong database đổ vào adapter
    1. Trong file TbLopDAO tạo thêm hàm GetAll()  lấy dữ liệu như sau:
 Code trong hàm getAll
  1. Gắn dữ liệu lấy được vào Adapter và đưa lên Listview
    1. Quay sang  MainActivity khai báo thêm 2 thuộc tính:
TbLopAdapter tbLopAdapter;
ListView listViewLop ;
    1. Xem phần bổ sung trong ảnh

Thêm code khai báo trong activity

  1. Hiển thị lại dữ liệu trên listview khi thêm mới

Trong hàm AddNew ở lớp MainActivity, tìm đến chỗ thông báo thêm mới thành công, sửa thêm code như sau

Sửa code trong hàm thêm mới
 

Chạy và thử nghiệm thêm mới:

  • Chạy thử, thêm mới
  • Tắt hoàn toàn ứng dụng
  • Mở lại ứng dụng xem có bản ghi vừa thêm hay không, nếu có là thành công.

 

Video hướng dẫn dựng code