2016-12-30 5 views
1

Aktivität haupt enthalten unter cade alle funktionieren gut, aber wenn ich auf logout aus der schublade ich gehe aktivität instand fragment, wenn ich pause setzen ; falls Logout als Fragmentklasse nicht aufgelöst wird.aus menüpunkt wählen eins ist aktivität zu gehen, wie kann ich direkte aktivität in android gehen

public void selectDrawerItem(MenuItem menuItem) { 
    Fragment fragment = null; 
    Class fragmentClass; 
    Float elevation = getResources().getDimension(R.dimen.elevation_toolbar); 

    switch (menuItem.getItemId()) { 

     case R.id.home: 
      fragmentClass = HomeFragment_.class; 
      break; 
     case R.id.process: 
      fragmentClass = ProcessFragment_.class; 
      break; 
     case R.id.decline: 
      fragmentClass = RejectFragment_.class; 
      break; 

     case R.id.more: 
      try { 
       startActivity(new Intent(
         Intent.ACTION_VIEW, 
         Uri.parse("https://play.google.com/store/search?q=mndigital"))); 
      } catch (android.content.ActivityNotFoundException anfe) { 
       startActivity(new Intent(
         Intent.ACTION_VIEW, 
         Uri.parse("https://play.google.com/store/search?q=mndigital"))); 
      } 
       fragmentClass = HomeFragment_.class; 
      break; 
     case R.id.logout: 
      VPreferences.reset(); 
      Intent intent = new  Intent(MainActivity.this,LoginActivity_.class); 
      startActivity(intent); 
      finish(); 
    //    fragmentClass = HomeFragment_.class; 
//    break; 
      default: 
      fragmentClass = HomeFragment_.class; 
      break; 
    } 
    try { 
     fragment = (Fragment) fragmentClass.newInstance(); 
    } catch (InstantiationException e) { 
     e.printStackTrace(); 
    } catch (IllegalAccessException e) { 
     e.printStackTrace(); 
    } 

     FragmentManager fragmentManager = getSupportFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 

    fragmentTransaction.replace(R.id.content_frame, fragment); 
    fragmentTransaction.addToBackStack(null); 
    fragmentTransaction.commit(); 


    menuItem.setChecked(true); 
    setTitle(menuItem.getTitle()); 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
     toolbar.setElevation(0.0f); 

    drawerLayout.closeDrawers(); 
} 

, wenn ich auf logout von Login-Aktivität Schublade öffnen howcan i erreichen.

Antwort

2

Sie benötigen einen break nach case R.id.logout: zu setzen.

Es wird auch der Standardfall, wenn der Fall R.id.logout ist.

Schreiben finish() eine Aktivität nicht sofort beendet, aber die anderen ausstehenden Anweisungen in diesem Thread vor Abschluss abgeschlossen.

Oder Sie könnten nur return der Ablauf der Steuerung von dem Schalterblock, nachdem Sie die LoginActivity_ begonnen haben.

case R.id.logout: 
      VPreferences.reset(); 
      Intent intent = new  Intent(MainActivity.this,LoginActivity_.class); 
      startActivity(intent); 
      finish(); 
      break; // to make sure it doesn't go in the default block 
      return; // to return the flow of control outside the switch statement 
Verwandte Themen