Android & Kiến trúc
Thực hành kiểm tra dữ liệu biểu mẫu trước khi lưu
Tách kiểm tra đầu vào khỏi màn hình để chạy ca thử trực tiếp.
Thích và đánh giá Bình luận và hỏi đáp1. Đề bài
Màn hình nhập môn học có mã và số tín chỉ. Mã phải khác rỗng sau khi bỏ khoảng trắng hai đầu. Tín chỉ phải là số nguyên từ 1 đến 6. Hàm kiểm tra trả lỗi từng trường và chỉ tạo bản ghi khi cả hai trường hợp lệ.
2. Tách logic khỏi giao diện
Activity chỉ lấy dữ liệu người dùng nhập và hiển thị lỗi. Viết phép kiểm tra thành hàm thuần, để cùng dữ liệu luôn có cùng kết quả. Quyết định trước tập ký tự được chấp nhận. Ví dụ này nhận các chữ số ASCII sau khi bỏ khoảng trắng.
3. Đối chiếu lời giải
Mẫu Python chạy độc lập để kiểm chứng quy tắc, có thể chuyển sang Java cho bài Android. Ca có mã rỗng và tín chỉ x phải nhận hai lỗi. Ca có mã CTDL01 và 3 tín chỉ phải trả về mã đã chuẩn hóa và số nguyên 3.
Chạy ví dụ bằng python hoc_android_kiem_tra_bieu_mau.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 kiem_tra(ma, tin_chi):
ma, tin_chi = ma.strip(), tin_chi.strip()
loi = {}
if not ma:
loi["ma"] = "Nhập mã học phần"
if tin_chi not in {"1", "2", "3", "4", "5", "6"}:
loi["tin_chi"] = "Nhập số tín chỉ từ 1 đến 6"
if loi:
return loi, None
return {}, {"ma": ma, "tin_chi": int(tin_chi)}
assert set(kiem_tra(" ", "x")[0]) == {"ma", "tin_chi"}
assert kiem_tra(" CTDL01 ", " 3 ") == ({}, {"ma": "CTDL01", "tin_chi": 3})
assert kiem_tra("CTDL01", "3.0")[1] is None
print("Ca hợp lệ lưu dữ liệu đã chuẩn hóa.")4. Bài tập mở rộng
Thêm biên 0, 1, 6, 7 và trường hợp tín chỉ là 3.0. Đưa kết quả vào hai ô lỗi tương ứng trên giao diện. Khi nhấn Lưu, chỉ gọi tầng dữ liệu nếu bảng lỗi rỗng.
Đọc thêm Hướng dẫn kiến trúc ứng dụng Android.