2017-02-23 8 views
0

Meine App stürzt ab, als ich versuchte, dort ein Menü hinzuzufügen. Ich denke, das wahrscheinlichste ist meine private Variable nn.App stürzt nach privat ab NavigationView

public class UserAreaActivity extends AppCompatActivity { 

private NavigationView nn; //is it wrong? 

und auf onCreate

nn = (NavigationView) findViewById(R.id.drawerLayout); 
     nn.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
      @Override 
      public boolean onNavigationItemSelected(final MenuItem menuItem) { 
       int id = menuItem.getItemId(); 
       switch (id) { 
        case R.id.nav_upload: 
         Intent upIntent = new Intent(UserAreaActivity.this, Upload.class); 
         UserAreaActivity.this.startActivity(upIntent); 
         return true; 
        case R.id.nav_logout: 
         SharedPreferences pref = getApplicationContext().getSharedPreferences("pref01", MODE_PRIVATE); 
         SharedPreferences.Editor editor = pref.edit(); 
         editor.clear(); 
         editor.apply(); 
         Intent logIntent = new Intent(UserAreaActivity.this, LoginActivity.class); 
         UserAreaActivity.this.startActivity(logIntent); 
        default: 
         return true; 
       } 
      } 
     }); 

Antwort

1

wenn ich ein NavigationView implementieren i als Variable in der Klasse nicht erklären, nur in onCreate Verfahren und es dann für wichtige Dinge einen Hörer, um das Menü wie zeigen , so etwas wie dieses:

NavigationView view = (NavigationView) findViewById(R.id.navigation_view); 
view.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
@Override public boolean onNavigationItemSelected(MenuItem menuItem) { 
    Snackbar.make(content, menuItem.getTitle() + " pressed", Snackbar.LENGTH_LONG).show(); 
    menuItem.setChecked(true); 
    drawerLayout.closeDrawers(); 
    return true; 
} 
}); 

ich glaube, Sie auf diesen Link nützlich finden wird: https://antonioleiva.com/navigation-view/