Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android -- Options Menu,Context Menu,Popup Menu

Android -- Options Menu,Context Menu,Popup Menu

編輯:關於Android編程

創建選項菜單的步驟:   1、覆蓋Activity 的onCreateOptionMenu(Menu menu)方法,當菜單第一次被打開時調用   2、調用Menu 的add( )方法添加菜單項(MenuItem),同時可以調用MenuItem 的setIcon( )方法來為菜單項設置圖標   3、當菜單項(MenuItem)被選擇時,覆蓋Activity 的onOptionsItemSelected(MenuItem item)來響應事件   復制代碼 public class MainActivity extends Activity {       // 定義一些變量,後面直接拿來用     private static final int START_ITEM = Menu.FIRST;     private static final int OVER_ITEM = Menu.FIRST + 1;     private static final int SET_ITEM1 = Menu.FIRST + 2;     private static final int SET_ITEM2 = Menu.FIRST + 3;       @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);     }       @Override     public boolean onCreateOptionsMenu(Menu menu) {         // 添加菜單項(組ID,菜單項ID,排序,標題)         menu.add(0, START_ITEM, 100, "開始");         menu.add(0, OVER_ITEM, 200, "結束");         // 添加子菜單         SubMenu sub1 = menu.addSubMenu("設置");         sub1.add(1, SET_ITEM1, 300, "設置聲音");         sub1.add(1, SET_ITEM2, 400, "設置桌面");         return true;     }       @Override     public boolean onOptionsItemSelected(MenuItem item) {           switch (item.getItemId()) {         case START_ITEM:             // 提示信息             Toast.makeText(this, "開始", Toast.LENGTH_SHORT).show();             break;         case OVER_ITEM:             // 提示信息             Toast.makeText(this, "結束", Toast.LENGTH_SHORT).show();             break;         case SET_ITEM1:             // 提示信息             Toast.makeText(this, "聲音設置", Toast.LENGTH_SHORT).show();             break;         case SET_ITEM2:             // 提示信息             Toast.makeText(this, "設置桌面", Toast.LENGTH_SHORT).show();             break;         default:             break;         }         return super.onOptionsItemSelected(item);     }   } 復制代碼 Context Menu                                                                           顧名思義,與上下文(環境)有關。思想類似於Windows中的右鍵單擊彈出的快捷菜單。操作時需要長時間按住某個東東不放。   創建上下文菜單的步驟:   1、覆蓋Activity 的onCreateContextMenu(Menu menu)方法,調用Menu的add()方法添加菜單項(MenuItem)。   2、覆蓋Activity 的onContextItemSelected(MenuItem iitem)來響應事件。   3、調用registerForContextMenu( )方法來為視圖注冊上下文菜單。   復制代碼 public class MainActivity2 extends Activity {       private Button btn1;       @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main2);         // 獲取BUTTON對象         btn1 = (Button) findViewById(R.id.button1);         //在button上注冊上下文菜單         registerForContextMenu(btn1);     }       // 創建上下文菜單的事件方法     @Override     public void onCreateContextMenu(ContextMenu menu, View v,             ContextMenuInfo menuInfo) {         super.onCreateContextMenu(menu, v, menuInfo);           getMenuInflater().inflate(R.menu.menu_main2, menu);       }       // 上下文菜單項觸發事件     @Override     public boolean onContextItemSelected(MenuItem item) {         switch (item.getItemId()) {         case R.id.start:             Toast.makeText(this, "開始。。。", Toast.LENGTH_SHORT).show();             break;         case R.id.over:             Toast.makeText(this, "結束。。。", Toast.LENGTH_SHORT).show();             break;         default:             break;         }         return super.onContextItemSelected(item);     }   } 復制代碼 Popup Menu                                                                                彈出式菜單.   彈出菜單是停靠在一個View上的一個模式菜單。如果View對象下方有空間,那麼彈出菜單將顯示在停靠對象的下方,否則會顯示在上方。這是非常有用的。   復制代碼 public class MainActivity3 extends Activity  implements OnMenuItemClickListener{       @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main3);     }       public void showPopupMenu(View v){         //創建彈出式菜單對象(最低版本11)         PopupMenu popup = new PopupMenu(this,v);         //獲取菜單填充器         MenuInflater inflater = popup.getMenuInflater();         //填充菜單         inflater.inflate(R.menu.menu_main3, popup.getMenu());         //設置菜單項的單擊事件         popup.setOnMenuItemClickListener(this);           popup.show();     }       //彈出式菜單的單擊事件處理     @Override     public boolean onMenuItemClick(MenuItem item) {           switch (item.getItemId()) {         case R.id.copy:             Toast.makeText(this, "復制。。。", Toast.LENGTH_LONG).show();             break;         case R.id.del:             Toast.makeText(this, "刪除。。。", Toast.LENGTH_LONG).show();             break;           default:             break;         }         return false;     }   }
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved