Header ads

Header ads
» » OptionMenu

OptionMenu trong Android

Một ứng dụng có thể mở ra 1 menu để hiển thị các hành động thông qua 1 popup. Các menu chọn lựa chỉ tồn tại nếu thiết bị có hỗ trợ phím “option”. Nhưng mặc dù có sẵn phím này, Android 4.0 trở lên khuyến khích người lập trình sử dụng ActionBar thay cho menu.


Các phương thức thường dùng trong OptionMenu

1.onCreateOptionsMenu(): Phương thức onCreateOptionsMenu() sẽ thực hiện các công việc khởi tạo menu cho đối tượng Activity, ở đây chúng ta dùng phương thức inflate() của lớp android.view.MenuInflater để lấy dữ liệu của menu từ file options_menu.xml về sử dụng. Phương thức này nhận vào một đối tượng android.view.Menu.

2. onOptionsItemSelected(): Phương thức onOptionsItemSelected() sẽ xử lý sự kiện click menu. Phương thức này nhận vào một đối tượng android.view.MenuItem.


Ví dụ: Trong ví dụ này chúng ta sẽ làm ứng dụng gồm có 1 TextView. Trong ứng dụng khi bạn chọn thanh menu hoặc bấm phím ctrl+m trên máy ảo sẽ xuất hiện một optionmenu chọn một mục trên optionmenu sẽ xuất hiện nhãn của của optionmenu thông qua Toast. Tiến hành tạo project, vào thư mục  res /layout -> activity_main.xml  thiết kế giao diện sau:

Bước 1: Tạo một project tên là OptionMenuFile->New->Android Application Project điền các thông tin ->Next ->Finish
Bước 2: Mở res -> layout -> xml (hoặc) activity_main.xml và thêm code.

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:tools="http://schemas.android.com/tools"      android:layout_width="match_parent"      android:layout_height="match_parent"      android:paddingBottom="@dimen/activity_vertical_margin"      android:paddingLeft="@dimen/activity_horizontal_margin"      android:paddingRight="@dimen/activity_horizontal_margin"      android:paddingTop="@dimen/activity_vertical_margin"      tools:context="hiepsiit.com.menuoption.MainActivity" >       <TextView          android:id="@+id/tv_context_menu"          android:layout_width="fill_parent"          android:layout_height="fill_parent"          android:text="Demo Menu Chọn lựa"          android:textColor="#ff00"          android:textSize="25sp" />  </RelativeLayout>  

Bước 3: Trong tập tin strings.xml chúng ta định nghĩa 2 biến String dùng làm tiêu đề cho từng menu item.

  <?xml version="1.0" encoding="utf-8"?>  <resources>      <string name="app_name">MainActivity</string>          <string name="menu1">Settings</string>      <string name="menu2">Tools</string>  </resources>

Bước 4: Trong thư mục res/menu tạo môt tập tin options_menu.xml. Bên trong file này chúng ta sử dụng thẻ menu để khai báo menu và thẻ item để khai báo các item trong menu đó.

  <?xml version="1.0" encoding="utf-8"?>  <menu xmlns:android="http://schemas.android.com/apk/res/android">      <item android:id="@+id/settings"          android:title="@string/menu1" />      <item android:id="@+id/tools"          android:title="@string/menu2" />  </menu>

Bước 5: Mở src -> package -> MainActivity.java
Trong bước này để có thể sử dụng menu tùy chọn thì chúng ta phải override lại 2 phương thức của lớp Activity là onCreateOptionsMenu() và onOptionsItemSelected().

  package hiepsiit.com.menuoption;    import android.app.Activity;  import android.os.Bundle;  import android.view.Menu;  import android.view.MenuItem;  import android.widget.Toast;    public class MainActivity extends Activity {    	@Override  	protected void onCreate(Bundle savedInstanceState) {  		super.onCreate(savedInstanceState);  		setContentView(R.layout.activity_main);  	}    	@Override  	public boolean onCreateOptionsMenu(Menu menu) {  		// Inflate the menu; this adds items to the action bar if it is present.  		getMenuInflater().inflate(R.menu.option_menu, menu);  		return true;  	}    	@Override  	public boolean onOptionsItemSelected(MenuItem item) {  		// Handle action bar item clicks here. The action bar will  		// automatically handle clicks on the Home/Up button, so long  		// as you specify a parent activity in AndroidManifest.xml.  		int id = item.getItemId();  		switch (item.getItemId())           {              case R.id.settings:                  Toast.makeText(MainActivity.this, "Settings",                       Toast.LENGTH_SHORT).show();                  return true;                 case R.id.tools:                  Toast.makeText(MainActivity.this, "Tools",                       Toast.LENGTH_SHORT).show();                  return true;                 default:                  return super.onOptionsItemSelected(item);          }  	}  }  

Download ví dụ

Ứng dụng này được phát triển bởi adt bundleandroid 4.2 sử dụng minimum sdk 8 and target sdk 21.


Kết quả khi chạy ứng dụng:

Sau đó click vào thanh menu hoặc CTRL+M

Chọn một mục trên menu chọn lựa

 

 



Cập nhật công nghệ từ Youtube tại link: https://www.youtube.com/channel/UCOxeYcvZPGf-mGLYSl_1LuA/videos
Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com

About Học viện đào tạo trực tuyến

Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: dinhanhtuan68@gmail.com .
- Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng .
- Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu...
HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG.
«
Next
Bài đăng Mới hơn
»
Previous
Bài đăng Cũ hơn