歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android中的Menu(菜單)的三種類型菜單的學習

Android中的Menu(菜單)的三種類型菜單的學習

日期:2017/3/1 10:47:27   编辑:Linux編程
今天學習一下菜單組件,在Android中的菜單中有三種①:OptionMenu(選項菜單)②:ContextMenu(上下文菜單) ③:SubMenu(子菜單)

下面分別來學一下

一:OptionMenu(選項菜單) 當我們使用手機的時候,按著手機上面的Menu,彈出的菜單就是選項菜單。但是我們一次性能顯示菜單選項只能是6個

如果我們設置的超過6個時候,第六個菜單選項會自動設置成更多,然後我們點擊更多的時候,剩下來的選項菜單就會選項.。先看下選項菜單的測試截圖

下面我們來創建一個選項菜單,步驟如下:

①:先去覆蓋Activity中的onCreateOptionsMenu(),但是這個方法只會在第一次調用的時候會被實例化,當實例化時候,就不會在被調用了

②:調用add()來添加菜單選項.add(groupId, itemId, order, titleRes)方法中個參數的意思是,

* @param group
* : 選項組號,一般都設置成0就OK啦
* @param itenId
* : 選項的Id 很重要
* @param order
* :順序,一般來說都設置0就行了
* @param titelRes
* : 選項的標題名字
*/

③:覆蓋onCreateOptionsMenu(Menu menu)menu.getItemId()來獲取選項的Id


下面來看下Demo源代碼:

  1. package com.jiangqq.menu;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.Menu;
  5. import android.view.MenuItem;
  6. import android.widget.Toast;
  7. /**
  8. * ①:直接去覆蓋public boolean onCreateOptionsMenu(Menu menu) { code......},
  9. * 這個方法,需要注意的是,這個方法如果覆蓋的了,只會被創建一次,也就是說, 選項菜單只會去被實例化一次,,,之後就不會被去調用了
  10. * ②:調用Menu中的add()方法,來添加每一個菜單選項, add(groupId, itemId, order, titleRes) group:
  11. * 選項組號,一般都設置成0就OK啦 itenId: 選項的Id 很重要 order:順序,一般來說都設置0就行了 titelRes: 選項的標題名字
  12. * ③:當我們去點擊某項的選項的時候,覆蓋重寫onOptionsItemSelected(MenuItem item)這個方法去實現點擊事件
  13. *
  14. * @author jiangqq
  15. *
  16. */
  17. public class Option_Menu_Activity extends Activity {
  18. // 點擊菜單選項的常量Id
  19. private static final int menu1 = 1;
  20. private static final int menu2 = 2;
  21. private static final int menu3 = 3;
  22. private static final int menu4 = 4;
  23. private static final int menu5 = 5;
  24. private static final int menu6 = 6;
  25. private static final int menu7 = 7;
  26. public void onCreate(Bundle savedInstanceState) {
  27. super.onCreate(savedInstanceState);
  28. setContentView(R.layout.main);
  29. }
  30. /**
  31. * @param group
  32. * : 選項組號,一般都設置成0就OK啦
  33. * @param itenId
  34. * : 選項的Id 很重要
  35. * @param order
  36. * :順序,一般來說都設置0就行了
  37. * @param titelRes
  38. * : 選項的標題名字
  39. */
  40. public boolean onCreateOptionsMenu(Menu menu) {
  41. menu.add(0, menu1, 0, "Menu1");
  42. menu.add(0, menu2, 0, "Menu2");
  43. menu.add(0, menu3, 0, "Menu3");
  44. menu.add(0, menu4, 0, "Menu4");
  45. menu.add(0, menu5, 0, "Menu5");
  46. menu.add(0, menu6, 0, "Menu6");
  47. menu.add(0, menu7, 0, "Menu7");
  48. return true;
  49. }
  50. /**
  51. *
  52. * @param item
  53. * .getItemId() 獲取被點擊的Id
  54. */
  55. public boolean onOptionsItemSelected(MenuItem item) {
  56. switch (item.getItemId()) {
  57. case menu1:
  58. Toast.makeText(this, "你點擊Menu1", Toast.LENGTH_LONG).show();
  59. break;
  60. case menu2:
  61. Toast.makeText(this, "你點擊Menu2", Toast.LENGTH_LONG).show();
  62. break;
  63. case menu3:
  64. Toast.makeText(this, "你點擊Menu3", Toast.LENGTH_LONG).show();
  65. break;
  66. case menu4:
  67. Toast.makeText(this, "你點擊Menu4", Toast.LENGTH_LONG).show();
  68. break;
  69. case menu5:
  70. Toast.makeText(this, "你點擊Menu5", Toast.LENGTH_LONG).show();
  71. break;
  72. case menu6:
  73. Toast.makeText(this, "你點擊Menu6", Toast.LENGTH_LONG).show();
  74. break;
  75. case menu7:
  76. Toast.makeText(this, "你點擊Menu7", Toast.LENGTH_LONG).show();
  77. break;
  78. }
  79. return true;
  80. }
  81. }
Copyright © Linux教程網 All Rights Reserved