2012-04-06 16 views
1

Ich habe ein Optionsmenü für meine Datenbankklasse erstellt. Nach dem Start des Optionsmenüs möchte ich die gewünschte Aktivität beim Klick auf den angegebenen Button ausführen.onOptionsItemSelected Problem

Aber das Problem ist, dass, wenn ich auf eine Option klicke, ich auf die MainMenu.class verwiesen werde. Irgendwelche Ideen, warum das passiert?

Code:

@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; 
    } 

Antwort

8

Es sieht aus wie Sie eine break-Anweisung in jedem Fall fehlen.

1

Für jede Ihrer Bedingungen in der Switch-Anweisung in onOptionsItemSelected() müssen Sie True zurückgeben. Wenn Sie den Fall behandeln, müssen Sie true zurückgeben. Wenn Sie dies nicht tun, sollten Sie die Super-Class-Implementierung aufrufen.

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

gehen durch diese, um weitere Informationen 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; 
    } 
Verwandte Themen