Android 4.0 系統中,Activity在建立時便會調用 onCreateOptionMenu() 函數初始化自身的菜單系統。在Activity的整個生命週期中,選項菜單是一直被重複利用的,直到 Activity被銷燬。java
Android程序的菜單能夠在代碼中動態生成,也能夠使用XML文件製做菜單資源,而後經過 inflate() 函數映射到程序代碼中。android
(1)/res/menu/main.xmlide
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context="com.jhincheung.satomi.MainActivity" > <item android:id = "@+id/main_menu_1" android:icon = "@drawable/pic_01" android:title = "File"/> <item android:id = "@+id/main_menu_2" android:icon = "@drawable/pic_02" android:title = "Edit"/> <item android:id = "@+id/main_menu_3" android:icon = "@drawable/pic_03" android:title = "Source"/> </menu>
說明:使用XML文件描述菜單函數
(2)MainActivity.javathis
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }
說明:onCreateOptionMenu() 初始化菜單atom
@Override public boolean onOptionsItemSelected(MenuItem item) { TextView label = (TextView)findViewById(R.id.textView_1); switch(item.getItemId()){ case R.id.main_menu_1: label.setText("File-ID:"+item.getItemId()); return true; case R.id.main_menu_2: label.setText("Edit-ID:"+item.getItemId()); return true; case R.id.main_menu_3: label.setText("Source-ID:"+item.getItemId()); return true; default:return false; } }
示例程序:spa
MainActivity.javacode
final static int MENU_01 = Menu.FIRST; final static int MENU_02 = Menu.FIRST+1; final static int MENU_03 = Menu.FIRST+2; @Override public boolean onCreateOptionsMenu(Menu menu) { // getMenuInflater().inflate(R.menu.main, menu); menu.add(0,MENU_01,0,"添加好友").setIcon(R.drawable.pic_01); menu.add(0,MENU_02,0,"掃一掃").setIcon(R.drawable.pic_02); menu.add(0,MENU_03,0,"付款").setIcon(R.drawable.pic_03); return true; }