Câu hỏi: PRM393 - Form và Validation
30 câu trắc nghiệm kèm lời giải của môn Lập trình di động (Flutter) - Mobile Programming, xếp theo thứ tự nhập vào ngân hàng. Trang 2/2 — câu 21–30.
Danh sách câu hỏi
30/30 câuHết danh sách
21What is the role of a `4 lựa chọncó codeKhó33% trả lời đúng
GlobalKey<FormState>` in Flutter forms?AIt allows a single codebase to render UI using its own engine across different platforms.
BHot Reload updates the UI without losing state, while Hot Restart resets the app state.
CIt ensures the UI avoids system intrusions like notches, status bars, and camera cutouts.
DIt uniquely identifies the Form and allows access to its state for validation and saving.
Lời giải
Mở trang câu hỏi này →Trong Flutter, `GlobalKey<FormState>`đóng vai trò quan trọng trong việc quản lý trạng thái của các form. Nó giúp duy trì trạng thái của form và cho phép truy cập trạng thái này để thực hiện các tác vụ như xác thực và lưu trữ dữ liệu. Điều này cho phép các nhà phát triển dễ dàng quản lý và cập nhật trạng thái của form mà không cần phải viết mã phức tạp. Ngoài ra, `GlobalKey<FormState>`cũng giúp giảm thiểu lỗi và tăng hiệu suất khi sử dụng các form trong ứng dụng Flutter.
22Which `AutovalidateMode` is recommended to provide immediate feedback to the user as they type in a form?4 lựa chọn
A
rootBundle.loadString()B
AutovalidateMode.onUserInteractionC
flutter_local_notificationsD
tester.pumpAndSettle()Lời giải
Mở trang câu hỏi này →Để cung cấp phản hồi ngay lập tức cho người dùng khi họ nhập vào một biểu mẫu, bạn nên sử dụng AutovalidateMode.onUserInteraction. Điều này cho phép kiểm tra nhập liệu ngay lập tức khi người dùng nhập vào, giúp người dùng nhận được phản hồi tức thời về việc nhập liệu của họ. Điều này đặc biệt hữu ích khi người dùng nhập vào một biểu mẫu và muốn biết ngay lập tức liệu nhập liệu của họ có hợp lệ hay không. Ngoài ra, sử dụng AutovalidateMode.onUserInteraction cũng giúp người dùng nhận được phản hồi ngay lập tức khi họ thực hiện các hành động như nhấn nút hoặc thay đổi nhập liệu.
23Which Flutter class is used to define custom themes, including colours and font styles, for the entire app?4 lựa chọnTrung bình67% trả lời đúng
A
runApp()B
ThemeDataC
main.dartD
validatorLời giải
Mở trang câu hỏi này →Để định nghĩa các chủ đề tùy chỉnh, bao gồm màu sắc và kiểu font, cho toàn bộ ứng dụng Flutter, bạn cần sử dụng lớp ThemeData. Lớp này cho phép bạn tạo ra các chủ đề tùy chỉnh có thể được áp dụng cho toàn bộ ứng dụng. Bạn có thể sử dụng ThemeData để định nghĩa màu sắc, kiểu font, kích thước font, và các thuộc tính khác để tạo ra một chủ đề duy nhất cho ứng dụng của mình. Ngoài ra, bạn cũng có thể sử dụng ThemeData để tạo ra các chủ đề khác nhau cho các màn hình hoặc các phần khác nhau của ứng dụng.
24Which Flutter tool provides information about the screen's size, orientation, and padding?4 lựa chọn
A
MediaQueryB
validatorC
main.dartD
implementsLời giải
Mở trang câu hỏi này →Để xác định kích thước màn hình, hướng màn hình và khoảng trống của màn hình trong Flutter, bạn có thể sử dụng công cụ 'MediaQuery'. 'MediaQuery' cung cấp thông tin về kích thước màn hình, hướng màn hình và khoảng trống của màn hình, giúp bạn có thể điều chỉnh ứng dụng của mình để phù hợp với các thiết bị khác nhau. Ví dụ, bạn có thể sử dụng 'MediaQuery' để lấy kích thước màn hình và điều chỉnh vị trí của các widget trong ứng dụng của mình. Ngoài ra, 'MediaQuery' cũng cung cấp các phương thức để lấy thông tin về hướng màn hình và khoảng trống của màn hình, giúp bạn có thể điều chỉnh ứng dụng của mình để phù hợp với các thiết bị khác nhau.
25Which package is used to display notifications locally on a user's device without a push server?4 lựa chọnTrung bình67% trả lời đúng
A
flutter_local_notificationsB
rootBundle.loadString()C
AutovalidateMode.onUserInteractionD
tester.pumpAndSettle()Lời giải
Mở trang câu hỏi này →Để hiển thị thông báo địa phương trên thiết bị của người dùng mà không cần sử dụng một máy chủ đẩy, chúng ta cần sử dụng gói phần mềm phù hợp. Trong các lựa chọn đã cho, gói phần mềm được sử dụng để hiển thị thông báo địa phương là "flutter_local_notifications". Đây là một gói phần mềm phổ biến được sử dụng để hiển thị thông báo trên thiết bị di động chạy hệ điều hành Android và iOS. Nó cho phép bạn tạo và hiển thị thông báo địa phương mà không cần sử dụng một máy chủ đẩy. Ngoài ra, nó cũng cung cấp các tính năng như quản lý thông báo, tùy chỉnh thông báo và hỗ trợ đa ngôn ngữ. Vì vậy, nếu bạn cần hiển thị thông báo địa phương trên thiết bị của người dùng mà không cần sử dụng một máy chủ đẩy, "flutter_local_notifications" là lựa chọn phù hợp.
26Which property of a `TextFormField` is used to define custom logic for checking if the input is valid?4 lựa chọn
A
main.dartB
validatorC
runApp()D
ThemeDataLời giải
Mở trang câu hỏi này →Để xác định logic tùy chỉnh để kiểm tra xem đầu vào có hợp lệ hay không, bạn cần sử dụng thuộc tính "validator" của "TextFormField". Thuộc tính này cho phép bạn định nghĩa các chức năng kiểm tra để xác minh dữ liệu nhập vào.
27Why call `validate()` before `save()`?4 lựa chọn
A`validate` clears the form
BOrder does not matter
COnly commit data via `save()` when fields are valid
D`save()` always throws
Lời giải
Mở trang câu hỏi này →Khi gọi hàm `validate()` trước `save()`, mục đích chính là để kiểm tra dữ liệu nhập vào có hợp lệ hay không. Nếu dữ liệu không hợp lệ, hàm `validate()` sẽ tự động báo lỗi và ngăn chặn việc lưu trữ dữ liệu vào cơ sở dữ liệu. Điều này giúp đảm bảo rằng dữ liệu được lưu trữ vào cơ sở dữ liệu luôn chính xác và hợp lệ. Vì vậy, việc gọi hàm `validate()` trước `save()` là một bước quan trọng trong quy trình lưu trữ dữ liệu.
28Which method resets all form fields?4 lựa chọn
A
remove()B
dispose()C
reset()D
clear()Lời giải
Mở trang câu hỏi này →Để reset tất cả các trường trong một form, bạn cần sử dụng phương thức reset(). Phương thức này sẽ xóa tất cả dữ liệu nhập vào trong form và đưa nó về trạng thái ban đầu. Điều này có thể hữu ích khi bạn muốn bắt đầu lại quá trình nhập liệu hoặc khi bạn muốn xóa dữ liệu không mong muốn. Phương thức reset() thường được sử dụng trong các trường hợp này. Các phương thức khác như remove(), dispose() và clear() không thực hiện chức năng reset form.
A
PasswordFieldB
SecureInputC
ObscureTextD
TextFieldLời giải
Mở trang câu hỏi này →Widget có thể ẩn văn bản nhập liệu của người dùng khi được cấu hình cho việc nhập mật khẩu là gì? Để trả lời câu hỏi này, chúng ta cần xem xét các lựa chọn được đưa ra. Lựa chọn đầu tiên là PasswordField. Đây là một widget phổ biến trong lập trình đồ họa người dùng (GUI) được sử dụng để nhập mật khẩu. Nó thường được thiết kế để ẩn văn bản nhập liệu để bảo vệ thông tin mật khẩu khỏi sự quan sát không mong muốn. Lựa chọn thứ hai là SecureInput. Mặc dù nó cũng có thể được sử dụng để nhập mật khẩu, nhưng nó không phải là lựa chọn phổ biến nhất. Lựa chọn thứ ba là ObscureText. Đây là một widget có thể ẩn văn bản nhập liệu, nhưng nó không được thiết kế đặc biệt cho việc nhập mật khẩu. Cuối cùng, lựa chọn thứ tư là TextField. Đây là một widget cơ bản được sử dụng để nhập văn bản, nhưng nó không được thiết kế để ẩn văn bản nhập liệu. Vì vậy, dựa trên các lựa chọn được đưa ra, PasswordField là widget phù hợp nhất để ẩn văn bản nhập liệu của người dùng khi được cấu hình cho việc nhập mật khẩu.
30What design principle improves form usability?4 lựa chọn
ALong forms
BMinimal validation
CClear labels and feedback
DHidden errors
Lời giải
Mở trang câu hỏi này →Đáp án đúng: C. Nguyên tắc thiết kế nâng cao trải nghiệm biểu mẫu là nhãn rõ ràng và phản hồi tức thời: mỗi trường có nhãn dễ hiểu, gợi ý định dạng, và khi nhập sai thì thông báo lỗi hiện ngay cạnh trường với hướng dẫn cách sửa. Trong Flutter, InputDecoration cùng validator của TextFormField phục vụ đúng mục đích này. Biểu mẫu quá dài (A) làm người dùng bỏ cuộc; kiểm tra dữ liệu sơ sài (B) đẩy lỗi xuống phía sau; ẩn thông báo lỗi (D) khiến người dùng không biết phải sửa gì - cả ba đều làm giảm tính khả dụng.