Giới thiệu
Trong bài viết này, chúng ta sẽ lập trình một ứng dụng “câu hỏi trắc nghiệm’ đơn giản. Ứng dụng sẽ đọc danh sách câu hỏi được chuẩn bị từ trước trong bộ nhớ điện thoại và hiển thị lên màn hình. Người dùng sẽ chọn một trong 4 câu trả lời, các câu trả lời sẽ được lưu lại một file riêng trên điện thoại.
Chuẩn bị
Thực hiện
Thiết kế giao diện
Màn hình câu hỏi
Trong màn hình này, chúng ta sẽ dùng các thành phần chính sau:
- File để đọc và ghi tệp trên điện thoại.
- Label để hiển thị câu hỏi.
- Button để người dùng chọn câu trả lời.
Màn hình kết quả
Màn hình kết quả sẽ dùng các thành phần chính sau:
- File để lấy danh sách câu trả lời đã lưu.
- Label để hiển thị kết quả.
- Button khi được nhấn thì trở về màn hình trắc nghiệm.
Chuẩn bị file danh sách câu hỏi
Ngoài ra, chúng ta còn cần chuẩn bị một file câu hỏi có định dạng là CSV được lưu trong thư mục Download của điện thoại. Các bạn có thể soạn câu hỏi trên Mircosoft Excel rồi export ra định dạng CSV. Hoặc mở trình soạn thảo văn bản và nhập nội dung vào.
Về cấu trúc của file csv thì mỗi một dòng tương ứng với một dòng của excel. Trên mỗi dòng, dấu phẩy dùng để chia nội dung ra tương ứng với các cột của excel.
Ví dụ:
Nội dung dạng bảng tính excel:
Và nội dung file CSV tương ứng:
Lập trình lấy và hiển thị câu hỏi
Đầu tiên, chúng ta sẽ tạo biến dạng danh sách để lưu các câu hỏi được lấy ra từ file csv.
Sau đó lập trình để khi ứng dụng được vừa khởi động thì thực hiện đọc file lấy câu hỏi.
Chúng ta sử dụng khối sự kiện GotText của thành phần File để lập trình khi lấy được file thì chuyển định dạng csv thành dạng danh sách và lưu vào biến.
Ngoài ra trong khối nhóm trên, chúng ta có một khối Procedures do người dùng tự tạo là “doi_cau_hoi”. Procedures cho phép người dùng nhóm một tập hợp các khối code lại với một định danh, khi cần dùng khối code thì chỉ cần gọi procedures với tên tương ứng.
Trong chương trình này. Procedures doi_cau_hoi sẽ lấy ngẫu nhiên một câu hỏi trong danh sách câu hỏi, rồi cho Label và ButtonCauA, B, C, D hiển thị lên màn hình.
Chúng ta tiếp tục có một Procedures tra_loi_cau_hoi, để mỗi khi một ButtonCauA, B, C, D được nhấn thì gọi đến Procedures này.
Và sự kiện khi một nút được nhấn:
Lập trình xem kết quả câu trả lời
Tương tự như màn hình trắc nghiệm, khi màn hình được chuyển qua thì ứng dụng được lập trình để lấy file kết quả.
Nếu đọc được file thì cho hiển thị ra màn hình.
Và cuối cùng là sự kiện chuyển sang màn hình trắc nghiệm khi người dùng nhấn nút.