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ực hànhThực hành4 phút đọcPython

Thích và đánh giá Bình luận và hỏi đáp
Chuỗi 3.0 bị từ chối; mã học phần sau trim phải còn nội dung.
Chuỗi 3.0 bị từ chối; mã học phần sau trim phải còn nội dung. Mở hình lớn ↗

1. Đề 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.

Python · hoc_android_kiem_tra_bieu_mau.pyTải mã nguồn
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.