Android & Kiến trúc
Thực hành xây trạng thái danh sách Android
Phân biệt đang tải, danh sách trống, có dữ liệu và lỗi bằng tình huống cụ thể.
Thích và đánh giá Bình luận và hỏi đáp1. Đề bài
Màn hình học phần có bốn trạng thái gồm đang tải, rỗng, có dữ liệu và lỗi. Hãy mô tả sự kiện tải lại và quy tắc xử lý kết quả. Kết quả thành công với danh sách rỗng cần hiện thông báo riêng.
2. Đặt quy tắc ánh xạ
Sự kiện tải lại trả trạng thái đang tải. Sự kiện thành công nhìn vào số phần tử. Sự kiện thất bại lưu thông báo để người dùng biết có thể thử lại. Trong bài cơ bản này chỉ có một yêu cầu đang xử lý tại một thời điểm.
3. Đối chiếu lời giải
Mẫu Python mô phỏng hàm chuyển trạng thái rồi kiểm tra tải thành công rỗng, có dữ liệu, thất bại và thử lại. Khi đưa vào Android, ViewModel có thể giữ trạng thái, còn Activity hoặc Fragment chỉ hiển thị theo trạng thái được nhận.
Chạy ví dụ bằng python hoc_android_trang_thai_man_hinh.py.
Môi trường thực hành. Python 3.10 trở lên. Ví dụ dùng thư viện chuẩn Python. Đây là mô hình Python để kiểm tra logic trước khi chuyển sang dự án Android.
def trang_thai(su_kien, du_lieu=None):
if su_kien == "tai":
return ("đang tải", None)
if su_kien == "thanh_cong":
return ("có dữ liệu", du_lieu) if du_lieu else ("rỗng", [])
if su_kien == "that_bai":
return ("lỗi", du_lieu)
raise ValueError("Sự kiện chưa biết")
assert trang_thai("tai") == ("đang tải", None)
assert trang_thai("thanh_cong", []) == ("rỗng", [])
assert trang_thai("thanh_cong", ["CTDL"]) == ("có dữ liệu", ["CTDL"])
assert trang_thai("that_bai", "Mất kết nối") == ("lỗi", "Mất kết nối")
print("Kiểm tra đủ bốn trạng thái hiển thị.")4. Bài tập mở rộng
Thêm trạng thái đang làm mới trong khi vẫn hiển thị dữ liệu cũ. Giải thích vì sao cần lưu danh sách và trạng thái tải riêng. Tạo một ca mạng lỗi khi đã có danh sách cũ để kiểm tra cách giao diện phản hồi.
Đọc thêm Hướng dẫn kiến trúc ứng dụng Android.