Hướng dẫn tạo OptionMenu trong android

Như các bạn đã biết , để control một app theo một cách tối ưu nhất , chúng ta luôn phát triển và tạo ra những khái niệm để khai thác mọi ưu điểm ở mặt quản lý người dùng . Một trong những khái niệm đó là MENU trong android.

I . Vậy menu là gì ?

“Menu là một thành phần giao diện người dùng phổ biến trong nhiều loại ứng dụng” – Theo Android Developers docs

Theo mình hiện nay thấy thì có 3 loại menu phổ biến trong các ứng dụng android :

.Option Menu :

(imgsrc :http://www.viralandroid.com/2015/08/android-action-bar-tutorial-and-example.html)

.Context Menu

( imgsrc :http://tutorialsbuzz.com/2013/02/android-context-menu-example.html)

Submenu

( imgsrc :http://stackoverflow.com/questions/22531784/sub-menu-for-sliding-menu-in-android\)

Trong bài viết này , mình sẽ hướng dẫn các bạn về cách tạo một OptionMenu trong Android . Còn 2 loại Context Menu và Submenu mình sẽ hướng dẫn các bạn vào các bài blog sau nhé ^_^ .

II. Xây dựng Option Menu :

***Bước 1 : Tạo file xml trong directory menu :

**

Nếu khi tạo project xong mà chưa có directory đó thì các bạn thực hiện tạo 1 directory mới và đặt tên menu sau đó tạo thêm 1 Menu Resource file :

Sau khi có được file xml thì chúng ta tiếp tục tạo các menu item tương ứng trong file menu

<?xml version="1.0"encoding="utf-8"?>

<menuxmlns:android="http://schemas.android.com/apk/res/android">

<item

android:id="@+id/menu1"

android:title="Blog"/>

<item

android:id="@+id/menu2"

android:title="Skylab"/>

</menu>

Ở đây thì mình tạo thêm 2 item : id là tên id để xác định tới option menu đó của các bạn , title là tên hiển thị của menu đó trên thiết bị . Ngoài ra còn có thêm icon hình cho menu. Các bạn có thể thêm vào tùy thích .

***Bước 2 : Ánh xạ sang class

Sau đó các bạn sang MainActivity.java để override phương thức onCreateOptionMenu() cho menu trên activity đó

Sau khi override method sau các bạn chỉnh sửa lại như sau :

MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menurs,menu);
return true;

Phương thức getMenuInflater(); trả về một MenuInflater trong context hiện tại

Còn menuInflater.inflate là ánh xạ và vẽ menu đó so với menu nảy chúng ra mới tạo ra , ở đây của mình là "R.menu.menurs" .

***Bước 3 : Tạo các hành động cho các menu

Để có thể cho menu thực hiện các hành động theo ý các bạn , tiếp tục các bạn override phương thức

onOptionsItemSelected()

Như nảy ta thấy id trong file xml menu mà chúng ta tạo , thì mỗi menu được xác định bằng một id xác định . Do vậy để truy xuất từng 1 menu thì ta dùng id để truy xuất .

Như “blog” thì có id là “menu1” và Skylab thì có id là “menu2” . Nên các bạn tránh nhầm lẫn việc dùng id thay vì title

Để truy xuất theo từng menu một thì ta dùng switch case :

switch (item.getItemId()){
    case R.id.menu1 :
      break;
    case R.id.menu2 :
        break;
    default:
        break;
}
return true;

MenuItem item chính là các item các bạn đã có được từ lúc override tạo hàm menu ở trên và để truy xuất từng item ta móc nó ra và so sánh nó với từng id để thực hiện các hành động

Hành động mình giờ sẽ là Toast ra một thông báo nho nhỏ để hiện ra các title khi click vào các menu đó .

switch (item.getItemId()){
  case R.id.menu1 :
      Toast.makeText(getApplicationContext(),"Blog",Toast.LENGTH_SHORT).show();
      break;
    case R.id.menu2 :
        Toast.makeText(getApplicationContext(),"Skylab",Toast.LENGTH_SHORT).show();
        break;
    default:
        break;
}

Sau khi hoàn thành xong 3 bước trên thì các bạn chạy app và quẩy thôi . ^_^ :

![](/assets/vu/11.png)

Tới đây là các bạn đã biết cách tạo một OptionMenu đơn giản rồi đấy .

Chúc các bạn thành công

VuTNQ ^_^

results matching ""

    No results matching ""