我有我的NavigationDrawer在MainActivity上工作。但是,当我切换Activites它消失

问题描述:

下面是我的我的NavigationDrawer的代码。我认为这与部分代码是公开/私有或受保护有关。但我不确定。任何帮助将不胜感激。我有我的NavigationDrawer在MainActivity上工作。但是,当我切换Activites它消失

public class MainActivity extends AppCompatActivity 
      implements NavigationView.OnNavigationItemSelectedListener { 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
      setSupportActionBar(toolbar); 

      FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
      fab.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
          .setAction("Action", null).show(); 
       } 
      }); 

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

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

     public boolean onNavigationItemSelected(MenuItem item) { 
      // Handle navigation view item clicks here. 
      switch(item.getItemId()){ 
       case R.id.my_account: 
        //Do code here 
        break; 
       case R.id.nav_news: 
        //Do code here 
        break; 
       case R.id.nav_live: 
        //Do code here 
        break; 
       case R.id.nav_media: 
        Intent intent=new Intent(MainActivity.this,activity_main_media.class); 
        startActivity(intent); 
        break; 
       case R.id.nav_calendar: 
        //Do code here 
        break; 
       case R.id.nav_results: 
        //Do code here 
        break; 
       case R.id.nav_about: 
        //Do code here 
        break; 
       case R.id.nav_shop: 
        //Do code here 
        break; 
       case R.id.nav_social_media: 
        //Do code here 
        break; 
       case R.id.nav_fanzone: 
        //Do code here 
        break; 

      } 

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


    } 
+0

你有次活动内DrawerLayout? – andrei

+0

您的抽屉只在mainactivity中,如果您需要它在activity_main_media中,您需要将它添加到那里的布局 – MidasLefko

+0

就像粘贴到我的activity_main_media一样简单? –

导航抽屉属于一个活动。当您将活动切换为正常状态时会丢失导航栏。您需要使用片段而不是活动。 Here是文档。

不过,如果你仍然想使用活动导航栏上的每一个项目,你最好先看看here