和Android UI layout一樣,我們也可以在XML中定義應用程序的菜單。通過在菜單的onCreateOptionsMenu方法中膨脹菜單layout。這樣做會使我們的程序代碼簡單多了,而且盡可能的將更多的界面設計部分放到XML,便于瀏覽。
1. 在工程的/res/文件夾下創建menu文件夾,用來保存你為應用程序定義的菜單XML文件。
在菜單XML layout中,有三個有效的元素:menu、group、item。item和group必須是menu的子元素,且item必須是group的子元素。另外的menu可以是item的子元素(為了創建子菜單)。下面的XML片段顯示了菜單的層次定義:
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"><item android:title="Play" android:id="@+id/media_play" android:icon="@android:drawable/ic_media_play"/><item android:title="Pause" android:id="@+id/media_pause" android:icon="@android:drawable/ic_media_pause"/><item android:title="File" android:id="@+id/file"><menu><item android:title="Open..." android:id="@+id/file_open"/><item android:title="Save" android:id="@+id/file_save"/><item android:title="Save as" android:id="@+id/file_saveas"/><item android:title="Exit" android:id="@+id/file_exit"/></menu></item><item android:title="Edit" android:id="@+id/edit"><menu><group><item android:title="Copy" android:id="@+id/edit_copy"/><item android:title="Paste" android:id="@+id/edit_paste"/><item android:title="Cut" android:id="@+id/edit_cut"/><item android:title="Delete" android:id="@+id/edit_delete"/></group></menu></item></menu>
2. 重寫Activity的onCreateOptionsMenu方法,通過MenuInflater.inflate方法來膨脹菜單XML。
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_option, menu);
3. 在Activity的onOptionsItemSelected方法中處理每個菜單項的點擊事件:
@Overridepublic boolean onOptionsItemSelected(MenuItem item) {super.onOptionsItemSelected(item);switch (item.getItemId()) {case R.id.media_play: break;case R.id.media_pause: break;case R.id.file_open: break;case R.id.file_save:…}return true;} 在XML可以定義菜單項的圖標、快捷鍵、checkbox等更多特征,了解更多請查閱SDK中關于菜單的主題。
演示的效果如圖:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答