Chương 3: Thiết kế giao diện
3.6.1 Menu trong Android:
Menu đưa ra một giải pháp để tăng tính tiện dụng của ứng dụng mà không chiếm dụng khơng gian trên màn hình. Mỗi một Activity có riêng cho nó một menu, được hiển thị khi người dùng nhấn nút Menu.
Android cũng hỗ trợ menu ngữ cảnh, nó được gán vào bất kỳ View nào bên trong một Activity. Một menu ngữ cảnh được hiển thị khi người dùng nhấn nút D-pad, trackball, hoặc nhấn vào màn hình cảm ứng khoảng 3 giây. menu ngữ cảnh hỗ trợ submenu, checkbox, radio button, shortcut key, và icon.
Các loại menu trong android:
• Icon Menu: được kết với menu, xuất hiện ở phần dưới của màn hình thiết bị khi nút
Menu được nhấn. Nó hiển thị icon và text cho các menu item hoặc các submenu. Icon menu hỗ trợ tạo tối đa 6 menu item, và các menu item này không thể hiển thị checkbox, radio button, hay shortcut key.
Hình 11 – Icon menu
• Expanded Menu: hiển thị khi người dùng chọn More trong menu icon. Expand Menu
hiển thị một danh sách có thể cuộn được các menu item, và các menu item này khơng thể chứa các icon mà chỉ có thể chứa text, shortcut key và checkbox/ radio button.
Hình 12 – Expanded menu
• Submenu: mỗi submenu hiển thị bằng một cửa sổ, tên của submenu được hiển thị ở
thanh header và mỗi Menu item được hiển thị với đầy đủ text, checkbox, shortcut key và không thể hiển thị icon cho các item. Android không hỗ trợ các submenu lồng nhau, vì khơng thể thêm một submenu vào một submenu.
Hình 13 - Submenu
3.6.2 Các kiểu Menu Item
Android hỗ trợ hầu hết các kiểu menu item truyền thống, bao gồm icon, shortcut, checkbox, radio button:
• Checkbox và Radio button group: Để thiết lập một menu item là checkbox sử dụng
phương thức setCheckable, để thiết lập trạng thái của checkbox dùng setChecked. Một radio button group là một nhóm các radio button và chỉ có một trong số chúng được chọn tại một thời điểm. Để tạo một radio button group, gán cùng ID nhóm cho mỗi item, sau đó gọi phương thức Menu.setGroupCheckable, truyền vào ID nhóm, và thiết lập giá trị cho các tham số khác là True.
// tạo checkbox.
menu.add(0, CHECKBOX_ITEM, Menu.NONE,
“CheckBox”).setCheckable(true); // tạo radio button group.
menu.add(RB_GROUP, RADIOBUTTON_1, Menu.NONE, “Radiobutton 1”); menu.add(RB_GROUP, RADIOBUTTON_2, Menu.NONE, “Radiobutton 2”); menu.add(RB_GROUP, RADIOBUTTON_3, Menu.NONE,
menu.setGroupCheckable(RB_GROUP, true, true);
• Shorcut Key: để chỉ định một keypad shortcut cho một Menu Item sử dụng phương
thức setShortcut. Phương thức này yêu cầu truyền vào 2 tham số, một là phím số và một là bàn phím đầy đủ.
menuItem.setShortcut(‘0’, ‘b’);
• Condensed Title: dùng một text để hiển thị menu.
menuItem.setTitleCondensed(“Short Title”);
• Icon: biểu tượng chỉ được hiển thị trên Icon Menu
menuItem.setIcon(R.drawable.menu_item_icon).
• Menu Item Click Listener: khi một menu được chọn sẽ có một xử lý điều khiển. Đó
là phương thức onOptionsItemSelected.
menuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem _menuItem) {
[ ... thực hiện xử lý ... ]
return true;
} });
• Intent: Khi một menu item được chọn, Android sẽ thực thi startActivity với một đối
tượng Intent.
menuItem.setIntent(new Intent(this, MyOtherActivity.class));