2017-02-23 11 views
0

メニューを追加しようとするとアプリがクラッシュする 私の個人的な変数nnがもっともらしいと思います。プライベートNavigationViewの後にアプリがクラッシュする

public class UserAreaActivity extends AppCompatActivity { 

private NavigationView nn; //is it wrong? 

との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; 
       } 
      } 
     }); 

答えて

1

私はNavigationViewを実装するとき、私はちょうどのonCreateメソッドでは、クラスの変数として宣言し、それにメニューを表示するような重要な事柄のためのリスナーを設定しなかったの、このような何か: https://antonioleiva.com/navigation-view/

0123:

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

は、私はあなたがこのリンクの便利を見つけることになると思います

関連する問題