動態更新菜單項與處理菜單選擇 (轉)

Java代碼
  1. public   boolean  onOptionsItemSelected(MenuItem item) {  
  2.   
  3. super .onOptionsItemSelected(item);  
  4.   
  5. // Find which menu item has been selected   
  6.   
  7. switch  (item.getItemId())   
  8.   
  9. {  
  10.   
  11. // Check for each known menu item   
  12.   
  13. case  (MENU_ITEM):  
  14.   
  15. [ ... Perform menu handler actions ... ]  
  16.   
  17. return   true ;  
  18.   
  19. }  
  20.   
  21. // Return false if you have not handled the menu item.   
  22.   
  23. return   false ;  
  24.   
  25. }  
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方法被重寫:

Java代碼
  1. onPrepareOptionsMenu方法被重寫:  
  2.   
  3.    
  4.   
  5. @Override   
  6.   
  7. public   boolean  onPrepareOptionsMenu(Menu menu) {  
  8.   
  9. super .onPrepareOptionsMenu(menu);  
  10.   
  11. MenuItem menuItem = menu.findItem(MENU_ITEM);  
  12.   
  13. [ ... modify menu items ... ]  
  14.   
  15. return   true ;  
  16.   
  17. }  
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 進行比較,進行相應的處理,如下代碼所示:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章