5

私はこの警告を自分のコードで受け取り続けています。私は完成の期限に近いので心配し始めています。私はAndroidスタジオの独自のナビゲーション・ドロワー・アクティビティを使用してメインアクティビティにDrawerLayoutを持っていますが、DrawerLayoutのsetDrawerListenerは非推奨になっているため、コードを少し変更する必要がありました。私はdrawer.addDrawerListener(toggle)上の警告と私のコードではさらに下navigationView.setNavigationItemSelectedListener(this)Androidドロワのレイアウトでnullポインタ例外が発生する可能性があります

を受け付けております

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    //Firebase reference to main application URL and 'today's' matches 
    Firebase mainRef = new Firebase(cons.getFirebaseUrl()); 

    //DrawerLayout settings for the navigation drawer 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.addDrawerListener(toggle); 
    toggle.syncState(); 

    //Retrieve the navigation drawer and set it's listener for menu item presses 
    navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 

、私はまた、この方法でそれを受けています:

@Override 
public void onBackPressed() { 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    if (drawer.isDrawerOpen(GravityCompat.START)) // This line gets the warning { 
     drawer.closeDrawer(GravityCompat.START); 
    } else { 
     super.onBackPressed(); 
    } 
} 

感謝を事前に持っていることが誰のために何が起こっているのかという考え。この問題を検索しましたが、廃止予定のメソッドの例は見つかりませんでした。

答えて

0

support-v7-appcompatにActionBarDrawerToggleを使用していることを確認してください。

drawerLayout.addDrawerListener(actionBarDrawerToggle);によってdrawerLayout.setDrawerListener(actionBarDrawerToggle);

コードを置き換え

最後に、このようなヌル引き出しとヌルnavigationviewをチェック:

 DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout); 

     ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
       this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
     assert drawer != null; 
     drawer.addDrawerListener(toggle); 
     toggle.syncState(); 

     NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
     assert navigationView != null; 
     navigationView.setNavigationItemSelectedListener(this); 
関連する問題