手機屏幕很是有限,所以要充分利用屏幕空間。Android提供了一種菜單的方式,可讓菜單獲得充分地展現,並且還不佔用任何屏幕空間。android
那怎麼建立菜單呢?this
1. 在 res 目錄下新建 Menu 文件夾,在文件夾下再建一個叫 main 的菜單文件。.spa
2. 在 main.xml 中添加以下代碼: code
1 <?xml version="1.0" encoding="utf-8"?> 2 <menu 3 xmlns:android="http://schemas.android.com/apk/res/android"> 4 <item 5 android:id="@+id/add_item" 6 android:title="Add"/> 7 <item 8 android:id="@+id/remove_item" 9 android:title="Remove"/> 10 </menu>
在這裏建立了兩個菜單項,其中<item>標籤就是用來建立具體的某一個菜單項,經過 id 給這個菜單項指定一個惟一的標識符, title 給這個菜單項指定一個惟一的名稱。xml
3. 在菜單項所在的活動中重寫 onCreateOptionsMenu() 方法(重寫方法快捷鍵 Ctrl+O)對象
1 public boolean onCreateOptionsMenu(Menu menu){ 2 getMenuInflater().inflate(R.menu.main,menu); 3 return true; 4 }
經過 getMenuInflater() 方法可以獲得所在Activity的 MenuInflater 對象,再經過 MenuInflater 對象調用它的 inflate() 方法來設置menu XML裏的 menu 做爲該Activity的菜單,就能夠給當前活動建立菜單了。blog
inflate() 方法接受兩個參數,事件
第一個參數用於指定經過哪個資源文件來建立菜單;utf-8
第二個參數用於指定菜單項將添加到哪個 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 }
經過調用item.getItemId() 來判斷點擊的是哪個菜單項。
添加上菜單後從新運行程序,會發現標題欄右側有三個點的符號,這就是菜單按鈕。
如有錯誤之處,歡迎指正。謝謝!