- public boolean onOptionsItemSelected(MenuItem item) {
- super .onOptionsItemSelected(item);
- // Find which menu item has been selected
- switch (item.getItemId())
- {
- // Check for each known menu item
- case (MENU_ITEM):
- [ ... Perform menu handler actions ... ]
- return true ;
- }
- // Return false if you have not handled the menu item.
- return false ;
- }
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
// Find which menu item has been selected
switch (item.getItemId())
{
// Check for each known menu item
case (MENU_ITEM):
[ ... Perform menu handler actions ... ]
return true;
}
// Return false if you have not handled the menu item.
return false;
}
動態更新菜單項
通過重寫onPrepareOptionsMenu方法,你可以每次在菜單項顯示時基於應用程序的狀態來修改菜單。它允許你動態的
disable/enable 菜單項,設置可見性以及修改菜單文本。
爲了動態的修改菜單項,你可以在onCreateOptionsMenu方法中,在創建菜單項時保留一個對它們的引用,或者你可以使用 menu.findItem 方法,如下面的代碼片段所示,onPrepareOptionsMenu方法被重寫:
- onPrepareOptionsMenu方法被重寫:
- @Override
- public boolean onPrepareOptionsMenu(Menu menu) {
- super .onPrepareOptionsMenu(menu);
- MenuItem menuItem = menu.findItem(MENU_ITEM);
- [ ... modify menu items ... ]
- return true ;
- }
onPrepareOptionsMenu方法被重寫:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
MenuItem menuItem = menu.findItem(MENU_ITEM);
[ ... modify menu items ... ]
return true;
}
處理菜單選擇
Android 使用一個事件處理函數——onOptionsItemSelected 來處理所有的菜單選擇事件。被選擇的菜單項會作爲 MenuItem 參數傳入這個方法。
爲了響應菜單選擇,將item.getItemId的值與當初定義菜單項的 ID 進行比較,進行相應的處理,如下代碼所示: