5

Tôi tiếp tục nhận được cảnh báo này trong mã của mình và tôi bắt đầu lo lắng vì tôi đã gần đến thời hạn hoàn thành của mình. Tôi có một DrawerLayout trong hoạt động chính của tôi, bằng cách sử dụng hoạt động ngăn kéo điều hướng của Android Studio nhưng phải thực hiện một thay đổi nhỏ đối với mã khi SetLrawerListener DrawerLayout hiện không còn được dùng nữa.Bố cục ngăn kéo Android có thể tạo ra ngoại lệ con trỏ 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); 

Tôi nhận được cảnh báo về drawer.addDrawerListener(toggle)navigationView.setNavigationItemSelectedListener(this)

Tiếp tục xuống trong mã của tôi, tôi cũng đang nhận được nó trong phương pháp này:

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

Cảm ơn trước cho bất cứ ai có thể có một ý tưởng về những gì đang gây ra nó. Tôi đã tìm kiếm sự cố này nhưng tôi không thể tìm thấy ví dụ về phương pháp không được chấp thuận.

Trả lời

0

Đảm bảo bạn đã sử dụng ActionBarDrawerToggle trong support-v7-appcompat.

Thay thế mã drawerLayout.setDrawerListener(actionBarDrawerToggle);

bởi drawerLayout.addDrawerListener(actionBarDrawerToggle);

Cuối cùng, kiểm tra ngăn kéo vô navigationview rỗng như thế này:

 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); 
Các vấn đề liên quan