2012-04-06 24 views
1

我爲我的數據庫類創建了一個選項菜單。在啓動選項菜單後,我想點擊指定的按鈕進行所需的活動。onOptionsItemSelected問題

但問題是,如果我點擊任何選項,我會被引導到MainMenu.class。任何想法爲什麼發生這種情況?

代碼:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     new MenuInflater(this).inflate(R.menu.optionmenu, menu); 
     return(super.onCreateOptionsMenu(menu)); 
    } 


    public boolean onOptionsItemSelected (MenuItem item){ 
     switch (item.getItemId()) 
     { 
     case R.id.item1: 
     { Intent r=new Intent(Database.this,MainMenu.class); 
      startActivity(r); 
     } 

     case R.id.takesurvey: 
     { 
      Toast toast=Toast.makeText(this, "check", 2000); 
       toast.show(); 
      Intent r1=new Intent(Database.this,SurveyActivity.class); 
      startActivity(r1); 
     } 

     case R.id.viewstats: 
     { Intent r2=new Intent(Database.this,Stats.class); 
      startActivity(r2); 
     } 

     case R.id.changesort: 
     { Intent r3=new Intent(Database.this,MainMenu.class); 
      startActivity(r3); 
     } 

     case R.id.menuexit: 
     { Intent r4=new Intent(Database.this,MainMenu.class); 
      startActivity(r4); 
     } 
     } 
     return true; 
    } 

回答

8

它看起來像你缺少在任何情況下break語句。

1

對於onOptionsItemSelected()中Switch語句中的每個條件,您必須返回true。如果你處理這個案例,那麼你必須返回true,否則你應該調用它的超類實現。

case R.id.item1: 
    { Intent r=new Intent(Database.this,MainMenu.class); 
     startActivity(r); 
     return true; 
    } 

經歷這個瞭解更多詳情 http://developer.android.com/guide/topics/ui/menus.html#options-menu

4
public boolean onOptionsItemSelected (MenuItem item){ 
     switch (item.getItemId()) 
     { 
     case R.id.item1: 
     startActivity(new Intent(Database.this,MainMenu.class)); 
     break; 

     case R.id.takesurvey: 
     Toast.makeText(this, "check", 2000).show(); 
     startActivity(new Intent(Database.this,SurveyActivity.class)); 
     break; 

     case R.id.viewstats: 
     startActivity(new Intent(Database.this,Stats.class)); 
     break; 

     case R.id.changesort: 
     startActivity(new Intent(Database.this,MainMenu.class)); 
     break; 

     case R.id.menuexit: 
     startActivity(new Intent(Database.this,MainMenu.class)); 
     break; 

     return true; 
    } 
相關問題