Menu trong Android
Menu trong Android là thành phần gì mà người học hệ điều hành này nên quan tâm? Để tìm hiểu về các loại menu và các bước liên quan dưới đây cùng R2S nhé!
Menu trong android – Định nghĩa trong XML
Trong lập trình Android, Menu là một thành phần giao diện quan trọng, cho phép người dùng lựa chọn các hành động cụ thể. Android hỗ trợ định dạng XML chuẩn để định nghĩa menu, bao gồm options menu và context menu.
Thay vì xây dựng menu sử dụng code trong activity, nên định nghĩa menu trong tập tin XML để ứng dụng có thể load vào activity.
Để định nghĩa menu, ta tạo tập tin XML trong thư mục menu (nếu chưa tồn tại thư mục này, ta phải tạo nó trong thư mục res) và xây dựng menu với các thành phần sau:
- Để định nghĩa một Menu trong Android, ta sử dụng thành phần <menu> để chứa các Menu items. Thành phần <menu> là root của tập tin XML và có thể chứa một hoặc nhiều <item> và <group>.
- <item> được sử dụng để tạo một MenuItem, cái mà sẽ hiển thị trong menu. Nếu cần, <item> có thể chứa một <menu> bên trong để tạo ra một submenu.
- <group> là thành phần không bắt buộc, được sử dụng để nhóm các menu lại với nhau.
Ví dụ định nghĩa một Menu trong Android tên menu_game.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/new_game"
android:icon="@drawable/ic_new_game"
android:title= "New Game"
<item android:id="@+id/help"
android:icon="@drawable/ic_help"
android:title= " Help" />
</menu>
Phân loại menu trong Android
Hiện nay, có hai loại menu là options menu và context menu.
Options menu là gì?
Options menu là nơi bạn nên bao gồm các hành động và các tùy chọn khác có liên quan đến ngữ cảnh hoạt động hiện tại, chẳng hạn như “Tìm kiếm”, “Soạn email” và “Cài đặt”.
Vị trí mà options menu hiển thị trên màn hình thiết bị phụ thuộc vào phiên bản của hệ điều hành android đang chạy trên thiết bị người dùng.
Đối với Android 2.3.x hoặc cũ hơn, options menu sẽ hiển thị ở bên dưới màn hình khi người dùng nhấn nút Menu.
Tuy nhiên đối với Android 3.0 hoặc cao hơn, vị trị menu sẽ xuất hiện là ở app bar của ứng dụng.
Context menu là gì?
Context menu xuất hiện khi người dùng tương tác với một view bất kỳ. Ví dụ, khi người dùng long click vào ListView, một số thao tác sẽ được hiển thị để người dùng có thể lựa chọn (context menu).
Hướng dẫn tạo Menu trong Android
Để tạo menu cho mỗi loại, bạn cần thực hiện theo những bước hướng dẫn dưới đây:
Hướng dẫn các bước tạo Options menu
Bước 1: Hãy tạo một tập tin XML trong thư mục menu để định nghĩa menu và thêm các menu item.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/new_game"
android:title= "New Game"
<item android:id="@+id/help"
android:title= " Help" />
</menu>
Bước 2: Chỉ định options menu cho một activity
Để chỉ định options menu cho một activity, chúng ta phải override phương thức onCreateOptionsMenu().
Ví dụ Menu trong Android:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_game, menu);
return true;
}
Bước 3: Xử lý sự kiện
Khi người dùng chọn một item từ options menu, hệ thống sẽ gọi phương thức onOptionsItemSelected(). Để xử lý sự kiện, chúng ta có thể override phương thức này và sử dụng getItemId() để xác định menu item nào đã được chọn.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.new_game:
newGame();
return true;
case R.id.help:
showHelp();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Các bước tạo context menu
Bước 1: Đầu tiên là định nghĩa menu sử dụng XML
Bước 2: Cài đặt phương thức onCreateContextMenu() để chỉ định menu
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo){
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
Bước 3: Xử lý sự kiện Menu trong Android
Cài đặt xử lý cho phương thức onContextItemSelected()
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.edit:
case R.id.delete:
default:
return super.onContextItemSelected(item);
}
}
Bước 4: Đăng ký context menu cho các item
view.registerForContextMenu()
Menu trong android – Bài tập thực hành
Giao diện ứng dụng khi chạy
Thêm mới một môn thể thao
Màn hình nhập tên môn thể thao được hiển hị khi người dùng chọn Add
Xoá một môn thể thao (long click vào tên môn thể thao muốn xoá -> chọn Delete)
Để thay đổi tên môn thể thao, người dùng có thể thực hiện các bước sau: Long click vào tên môn thể thao muốn thay đổi -> chọn Edit -> Hiển thị màn hình cho phép thay đổi tên. Lưu ý tên môn thể thao mà người dùng đã chọn trước đó sẽ được hiển thị ở màn hình thay đổi.
Lưu ý về Menu trong Android:
- Tên môn thể thao phải được nhập trước khi chọn ‘Save & Exit’ và hiển thị màn hình xác nhận khi người dùng chọn ‘Delete’.
- Nếu người dùng chọn ‘Yes’, tên môn thể thao được chọn sẽ bị xoá.
Kết luận
Như vậy, bạn có thể thấy là Menu trong Android có vai trò vô cùng quan trọng. Đặc biệt là người mới cần phải biết phân biệt 2 loại menu này và biết các bước tạo menu sao cho phù hợp nhất nhé!
Bài viết gốc được đăng tại: giasutinhoc.vn