新的活动不启动时,点击导航抽屉项目

问题描述:

我已经搜索了很多,尝试了一切,我通过类似问题的解决方案,但没有帮助。 请告诉我我在代码中犯了什么错误,或者是否有我离开的东西。 请帮助我。任何更正都是可以理解的。 谢谢新的活动不启动时,点击导航抽屉项目

 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.setDrawerListener(toggle); 
    drawer.addDrawerListener(toggle); 
    toggle.syncState(); 

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 


    listView = (ListView) findViewById(R.id.list); 
    adapter = new Adapter(this, list); 
    listView.setAdapter(adapter); 
} 

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

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 

    @SuppressWarnings("StatementWithEmptyBody") 
    @Override 
    public boolean onNavigationItemSelected(MenuItem item) { 
     // Handle navigation view item clicks here. 
     int id = item.getItemId(); 
     switch (id) { 
      case R.id.nav_camera: 
       //Do some thing here 
       // add navigation drawer item onclick method here 
       Intent i = new Intent(MyBookings.this, Categories.class); 
       startActivity(i); 
       break; 
      case R.id.nav_gallery: 
       //Do some thing here 
       // add navigation drawer item onclick method here 
       break; 
      case R.id.nav_slideshow: 
       //Do some thing here 
       // add navigation drawer item onclick method here 
       break; 
      case R.id.nav_share: 
       //Do some thing here 
       // add navigation drawer item onclick method here 
       break; 
      case R.id.nav_send: 
       //Do some thing here 
       // add navigation drawer item onclick method here 
       break; 
     } 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.closeDrawer(GravityCompat.START); 
     return false; 
    } 
} 
+0

尝试使用片段而不是活动导航抽屉里。 –

+0

我不需要其他活动中的导航抽屉。这就是为什么我不使用片段。我想开始新的活动,当我点击项目 – Dev

+0

行。然后在开始新活动后结束当前活动。 –

试图改变你的方法返回的布尔:

@SuppressWarnings("StatementWithEmptyBody") 
    @Override 
    public boolean onNavigationItemSelected(MenuItem item) { 
     // Handle navigation view item clicks here. 
     int id = item.getItemId(); 
     switch (id) { 
      case R.id.nav_camera: 
       //Do some thing here 
       // add navigation drawer item onclick method here 
       Intent i = new Intent(MyBookings.this, Categories.class); 
       startActivity(i); 
       break; 
      case R.id.nav_gallery: 
       //Do some thing here 
       // add navigation drawer item onclick method here 
       break; 
      case R.id.nav_slideshow: 
       //Do some thing here 
       // add navigation drawer item onclick method here 
       break; 
      case R.id.nav_share: 
       //Do some thing here 
       // add navigation drawer item onclick method here 
       break; 
      case R.id.nav_send: 
       //Do some thing here 
       // add navigation drawer item onclick method here 
       break; 
     } 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.closeDrawer(GravityCompat.START); 
     return true; 
    } 

试试这个变化::

Intent i = new Intent(MyBookings.this, Categories.class); 
startActivity(i); 
finish(); 

只需从switch语句的结尾处,删除这两条线

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
drawer.closeDrawer(GravityCompat.START); 

让true.and我知道,如果可以帮助

+0

nope ...它不工作 – Dev

变化复位开关语句前加上导览线

@Override 
     public boolean onNavigationItemSelected(MenuItem item) { 
      // Handle navigation view item clicks here. 

      DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
      drawer.closeDrawer(GravityCompat.START); 

      int id = item.getItemId(); 
      switch (id) { 
       case R.id.nav_camera: 
        //Do some thing here 
        // add navigation drawer item onclick method here 
        Intent i = new Intent(MyBookings.this, Categories.class); 
        startActivity(i); 
        break; 
       case R.id.nav_gallery: 
        //Do some thing here 
        // add navigation drawer item onclick method here 
        break; 
       case R.id.nav_slideshow: 
        //Do some thing here 
        // add navigation drawer item onclick method here 
        break; 
       case R.id.nav_share: 
        //Do some thing here 
        // add navigation drawer item onclick method here 
        break; 
       case R.id.nav_send: 
        //Do some thing here 
        // add navigation drawer item onclick method here 
        break; 
      } 
       return true; 
     } 
    }