標籤:show xmlns inf col toast flat select als 允許
手機螢幕非常有限,因此要充分利用螢幕空間。Android提供了一種菜單的方式,可以讓菜單得到充分地展示,而且還不佔用任何螢幕空間。
那怎麼建立菜單呢?
1. 在 res 目錄下建立 Menu 檔案夾,在檔案夾下再建一個叫 main 的菜單檔案。.
2. 在 main.xml 中添加如下代碼:
1 <menu 2 xmlns:android="http://schemas.android.com/apk/res/android">3 <item4 android:id="@+id/add_item"5 android:title="Add"/>6 <item7 android:id="@+id/remove_item"8 android:title="Remove"/>9 </menu>
View Code
在這裡建立了兩個功能表項目,其中<item>標籤就是用來建立具體的某一個功能表項目,通過 id 給這個功能表項目指定一個唯一的標識符, title 給這個功能表項目指定一個唯一的名稱。
3. 在功能表項目所在的活動中重寫 onCreateOptionsMenu() 方法(重寫方法快速鍵 Ctrl+O)
1 public boolean onCreateOptionsMenu(Menu menu){2 getMenuInflater().inflate(R.menu.main,menu);3 return true; 4 }
View Code
通過 getMenuInflater() 方法能夠得到所在Activity的 MenuInflater 對象,再調用它的 inflate() 方法來設定menu XML裡的 menu 作為該Activity的菜單,就可以給當前活動建立菜單了。
inflate() 方法接受兩個參數,
第一個參數用於指定通過哪一個資源檔來建立菜單;
第二個參數用於指定功能表項目將添加到哪一個 Menu 對象中,這裡可以直接使用方法中傳入的 menu 參數。
然後這個方法返回 true,表示允許建立的菜單顯示出來;如果返回了 false,建立的菜單將無法顯示。
4. 當然菜單定義出來不是為了看的,我們可以給菜單定義響應事件。
重寫 onOptionsItemSelected()方法:
1 public boolean onOptionsItemSelected(MenuItem item){ 2 switch(item.getItemId){ 3 case R.id.add_item: 4 Toast.makeText(this,"You clicked Add",Toast.LENGTH_SHORT).show(); 5 break; 6 case R.id.remove_item: 7 Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT).show(); 8 break; 9 default:10 } 11 return true;12 }
View Code
通過調用item.getItemId() 來判斷點擊的是哪一個功能表項目。
添加上菜單後重新運行程式,會發現標題列右側有三個點的符號,這就是功能表按鈕。
Android之在活動中使用Menu