Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 開發入門 >> Android XML中自定義菜單

Android XML中自定義菜單

編輯:開發入門

 和android UI layout一樣,我們也可以在XML中定義應用程序的菜單。通過在菜單的onCreateOptionsMenu方法中膨脹菜單layout。這樣做會使我們的程序代碼簡單多了,而且盡可能的將更多的界面設計部分放到XML,便於浏覽。

1. 在工程的/res/文件夾下創建menu文件夾,用來保存你為應用程序定義的菜單XML文件。

在菜單XML layout中,有三個有效的元素:menu、group、item。item和group必須是menu的子元素,且item必須是group的子元素。另外的menu可以是item的子元素(為了創建子菜單)。下面的XML片段顯示了菜單的層次定義:

Java代碼:
  1. <?XML version="1.0" encoding="utf-8"?>

  2. <menu XMLns:android="http://schemas.android.com/apk/res/android">
  3. <item android:title="Play" android:id="@+id/media_play"
  4. android:icon="@android:drawable/ic_media_play"/>
  5. <item android:title="Pause" android:id="@+id/media_pause"
  6. android:icon="@android:drawable/ic_media_pause"/>
  7. <item android:title="File" android:id="@+id/file">
  8. <menu>

  9. <item android:title="Open..." android:id="@+id/file_open"/>
  10. <item android:title="Save" android:id="@+id/file_save"/>
  11. <item android:title="Save as" android:id="@+id/file_saveas"/>
  12. <item android:title="Exit" android:id="@+id/file_exit"/>
  13. </menu>

  14. </item>
  15. <item android:title="Edit" android:id="@+id/edit">

  16. <menu>

  17. <group>
  18. <item android:title="Copy" android:id="@+id/edit_copy"/>
  19. <item android:title="Paste" android:id="@+id/edit_paste"/>
  20. <item android:title="Cut" android:id="@+id/edit_cut"/>
  21. <item android:title="Delete" android:id="@+id/edit_delete"/>

  22. </group>
  23. </menu>

  24. </item>
  25. </menu>

2. 重寫Activity的onCreateOptionsMenu方法,通過MenuInflater.inflate方法來膨脹菜單XML。

Java代碼:
  1. MenuInflater inflater = getMenuInflater();
  2. inflater.inflate(R.menu.menu_option, menu);

3. 在Activity的onOptionsItemSelected方法中處理每個菜單項的點擊事件:

Java代碼:
  1. @Override

  2. public boolean onOptionsItemSelected(MenuItem item) {
  3. super.onOptionsItemSelected(item);
  4. switch (item.getItemId()) {

  5. case R.id.media_play:
  6. break;

  7. case R.id.media_pause:
  8. break;

  9. case R.id.file_open:
  10. break;


  11. case R.id.file_save:
  12. }
  13. return true;
  14. }

在XML可以定義菜單項的圖標、快捷鍵、checkbox等更多特征,了解更多請查閱SDK中關於菜單的主題

效果圖:

1.png

  1. 上一頁:
  2. No
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved