2016-10-20 10 views
0

Son est mon code Menune peux pas cacher le menu latéral lorsque le bouton matériel retour a été cliqué

public class MainActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Menu(); 
     init(); 
    } 

public void init(){ 
    LinearLayout mRecomended = (LinearLayout)findViewById(R.id.recomended); 
    mRecomended.setOnClickListener(new OnClick()); 

    LinearLayout mLive = (LinearLayout)findViewById(R.id.live); 
    mLive.setOnClickListener(new OnClick()); 


    LinearLayout mLike = (LinearLayout)findViewById(R.id.like); 
    mLike.setOnClickListener(new OnClick()); 

    LinearLayout mFavorite = (LinearLayout)findViewById(R.id.favorite); 
    mFavorite.setOnClickListener(new OnClick()); 

    LinearLayout mHistory = (LinearLayout)findViewById(R.id.history); 
    mHistory.setOnClickListener(new OnClick()); 

    LinearLayout mFeedback = (LinearLayout)findViewById(R.id.feedback); 
    mFeedback.setOnClickListener(new OnClick()); 

    LinearLayout mSettings = (LinearLayout)findViewById(R.id.settings); 
    mSettings.setOnClickListener(new OnClick()); 
} 

private class OnClick implements View.OnClickListener { 
    @Override 
    public void onClick(View v) { 
     Intent intent = new Intent(); 
     Bundle bundle = new Bundle(); 
     switch (v.getId()) { 
      case R.id.recomended: 
       intent.setClass(MainActivity.this,MainActivity.class); 
       bundle.putString("theme", "Recomended"); 
       bundle.putString("From", "MainActivity"); 
       intent.putExtras(bundle); 
       startActivity(intent); 
       overridePendingTransition(0, 0); 
       Log.e("theme","Recomended"); 
       break; 
      case R.id.live: 
       intent.setClass(MainActivity.this,LiveActivity.class); 
       bundle.putString("theme", "Live"); 
       bundle.putString("From", "MainActivity"); 
       intent.putExtras(bundle); 
       startActivity(intent); 
       overridePendingTransition(0, 0); 
       Log.e("theme","Live"); 
       break; 
      default: 
       break; 
     } 
    } 
} 
public void Menu(){ 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    //remove ToolBar Tittle 
    getSupportActionBar().setDisplayShowTitleEnabled(false); 
    // configure the SlidingMenu 
    final SlidingMenu menu = new SlidingMenu(this); 
    menu.setMode(SlidingMenu.LEFT); 
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
    menu.setShadowWidthRes(R.dimen.shadow_width); 
    // setting menu width 
    menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); 
    menu.setFadeDegree(0.35f); 
    menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); 
    menu.setMenu(R.layout.left_fragment); 
    ImageView tool_menu = (ImageView)toolbar.findViewById(R.id.menu); 
    tool_menu.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      menu.toggle(); 
     } 
    }); 
    menu.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); 

} 

public void Bundle(){ 
    Bundle getbundle =this.getIntent().getExtras(); 
    ImageView iRecomended = (ImageView)findViewById(R.id.recomended_line); 
    switch(getbundle.getString("theme")){ 
     case "Recomended": 
      iRecomended.setVisibility(View.VISIBLE); 
      break; 
     case "Live": 
      ImageView iLive = (ImageView)findViewById(R.id.live_line); 
      iLive.setVisibility(View.VISIBLE); 

      iRecomended.setVisibility(View.INVISIBLE); 
      break; 
     case "Like": 
      ImageView iLike = (ImageView)findViewById(R.id.like_line); 
      iLike.setVisibility(View.VISIBLE); 

      iRecomended.setVisibility(View.INVISIBLE); 
      break; 
     case "Favorite": 
      ImageView iFavorite = (ImageView)findViewById(R.id.favorite_line); 
      iFavorite.setVisibility(View.VISIBLE); 

      iRecomended.setVisibility(View.INVISIBLE); 
      break; 
     case "History": 
      ImageView iHistory = (ImageView)findViewById(R.id.history_line); 
      iHistory.setVisibility(View.VISIBLE); 

      iRecomended.setVisibility(View.INVISIBLE); 
      break; 
     case "Feedback": 
      ImageView iFeedback = (ImageView)findViewById(R.id.feedback_line); 
      iFeedback.setVisibility(View.VISIBLE); 

      iRecomended.setVisibility(View.INVISIBLE); 
      break; 
     case "Settings": 
      ImageView iSettings = (ImageView)findViewById(R.id.settings_line); 
      iSettings.setVisibility(View.VISIBLE); 

      iRecomended.setVisibility(View.INVISIBLE); 
      break; 
    } 

}} 

et sa ma nextpage

public class LiveActivity extends AppCompatActivity { 
    String[] name = {"1","1","1","1"}; 
    String[] nickname = {"MidnightSnack","MidnightSnack","MidnightSnack","MidnightSnack"}; 
    String[] date = {"March 1,2016","March 1,2016","March 1,2016","March 1,2016"}; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.live_main); 
     Menu(); 
     Bundle(); 
     RecycleView(); 
     init(); 
    } 

    public void Bundle(){ 
     Bundle getbundle =this.getIntent().getExtras(); 
     ImageView iRecomended = (ImageView)findViewById(R.id.recomended_line); 
     switch(getbundle.getString("theme")){ 
      case "Recomended": 
       iRecomended.setVisibility(View.VISIBLE); 
       break; 
      case "Live": 
       ImageView iLive = (ImageView)findViewById(R.id.live_line); 
       iLive.setVisibility(View.VISIBLE); 

       iRecomended.setVisibility(View.INVISIBLE); 
       break; 
      case "Like": 
       ImageView iLike = (ImageView)findViewById(R.id.like_line); 
       iLike.setVisibility(View.VISIBLE); 

       iRecomended.setVisibility(View.INVISIBLE); 
       break; 
      case "Favorite": 
       ImageView iFavorite = (ImageView)findViewById(R.id.favorite_line); 
       iFavorite.setVisibility(View.VISIBLE); 

       iRecomended.setVisibility(View.INVISIBLE); 
       break; 
      case "History": 
       ImageView iHistory = (ImageView)findViewById(R.id.history_line); 
       iHistory.setVisibility(View.VISIBLE); 

       iRecomended.setVisibility(View.INVISIBLE); 
       break; 
      case "Feedback": 
       ImageView iFeedback = (ImageView)findViewById(R.id.feedback_line); 
       iFeedback.setVisibility(View.VISIBLE); 

       iRecomended.setVisibility(View.INVISIBLE); 
       break; 
      case "Settings": 
       ImageView iSettings = (ImageView)findViewById(R.id.settings_line); 
       iSettings.setVisibility(View.VISIBLE); 

       iRecomended.setVisibility(View.INVISIBLE); 
       break; 
     } 

    } 

    public void Menu(){ 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     //remove ToolBar Tittle 
     getSupportActionBar().setDisplayShowTitleEnabled(false); 
     final SlidingMenu menu = new SlidingMenu(this); 
     menu.setMode(SlidingMenu.LEFT); 
     menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
     menu.setShadowWidthRes(R.dimen.shadow_width); 
     // setting menu width 
     menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); 
     menu.setFadeDegree(0.35f); 
     menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); 
     menu.setMenu(R.layout.left_fragment); 
     ImageView tool_menu = (ImageView)toolbar.findViewById(R.id.menu); 
     tool_menu.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       menu.showMenu(); 
      } 
     }); 
    } 

    public void RecycleView(){ 
     RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView); 
     ArrayList<PostOfLiveActivity> data = new ArrayList<>(); 
     for(int i = 0; i < name.length; i++) { 
      data.add(new PostOfLiveActivity(name[i], null, nickname[i],date[i])); 
     } 
     AdapterOfLiveActivity adapter = new AdapterOfLiveActivity(this, data); 
     recyclerView.setLayoutManager(new LinearLayoutManager(this)); 
     recyclerView.setAdapter(adapter); 

    } 

    public void init(){ 
     LinearLayout mRecomended = (LinearLayout)findViewById(R.id.recomended); 
     mRecomended.setOnClickListener(new OnClick()); 

     LinearLayout mLive = (LinearLayout)findViewById(R.id.live); 
     mLive.setOnClickListener(new OnClick()); 

     LinearLayout mLike = (LinearLayout)findViewById(R.id.like); 
     mLike.setOnClickListener(new OnClick()); 

     LinearLayout mFavorite = (LinearLayout)findViewById(R.id.favorite); 
     mFavorite.setOnClickListener(new OnClick()); 

     LinearLayout mHistory = (LinearLayout)findViewById(R.id.history); 
     mHistory.setOnClickListener(new OnClick()); 

     LinearLayout mFeedback = (LinearLayout)findViewById(R.id.feedback); 
     mFeedback.setOnClickListener(new OnClick()); 

     LinearLayout mSettings = (LinearLayout)findViewById(R.id.settings); 
     mSettings.setOnClickListener(new OnClick()); 
    } 

    private class OnClick implements View.OnClickListener { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(); 
      Bundle bundle = new Bundle(); 
      switch (v.getId()) { 
       case R.id.recomended: 
        intent.setClass(LiveActivity.this,MainActivity.class); 
        bundle.putString("theme", "Recomended"); 
        intent.putExtras(bundle); 
        startActivity(intent); 
        overridePendingTransition(0, 0); 
        Log.e("theme","Recomended"); 
        break; 
       case R.id.live: 
        intent.setClass(LiveActivity.this,LiveActivity.class); 
        bundle.putString("theme", "Live"); 
        intent.putExtras(bundle); 
        startActivity(intent); 
        overridePendingTransition(0, 0); 
        Log.e("theme","Live"); 
        break; 
       default: 
        break; 
      } 
     } 
    } 
} 

quand je clique sur le bouton matériel de retour à LiveActivity, revenir à MainActivity mais mon Slide Menu a également ouvert, comment puis-je faire pour les cacher quand je clique sur le bouton retour matériel?

Répondre

0

S'il vous arrive d'utiliser https://github.com/jfeinstein10/SlidingMenu, je vous recommande de passer à NavigationDrawer à la place, car ce SlidingMenu n'est plus entretenu et présente des bogues qui n'ont pas encore été résolus. Si vous insistez utiliser cette bibliothèque, je vous recommande de fermer le menu avant de passer à la LiveActivity en appelant

if (menu.isMenuShowing()) { 
    menu.showContent(); 
} 
+0

merci pour votre réponse, mais j'ai encore une erreur de cela, je ne sais pas pourquoi c'est pas de travail, c'est trop mauvais –

+0

Assurez-vous que l'instanciation du menu coulissant est correcte. Mettez le menu 'SlidingMenu privé' à l'extérieur de la méthode en tant que variable globale, puis instanciez-le correctement en tant que 'menu = new SlidingMenu (this);' dans la méthode Menu(). Assurez-vous de supprimer le mot clé 'final' – HendraWD

+0

Son travail pour moi !! merci beaucoup J'ai juste oublié d'enlever "Final" !!!!! –

0

Vous pouvez résoudre ce problème par:

  • Déplacer SlidingMenu menu à des variables globales
  • remplacer méthode onBackPressed dans l'activité que vous souhaitez cliquez arrière touche pour fermer le menu Slide comme le code ci-dessous: @Override public void onBackPressed() { super.onBackPressed(); if (menu.isMenuShowing()) { menu.toggle(); } }
+0

merci pour votre réponse, mais quand je déplace le menu SlidingMenu aux variables globales, il m'a donné une erreur qui montre java.lang.RuntimeException: Impossible d'instancier l'activité ComponentInfo {bravoideas.ishowlife/bravoideas.ishowlife.LiveActivity}: java.lang. NullPointerException: Tentative d'invocation de la méthode virtuelle 'android.content.res.Resources android.content.Context.getResources()' sur un objet nul –

+0

Initialisez-vous '' menu = new SlidingMenu (this); '' on '' OnCreate' 'méthode? rememer enlever le dernier mot-clé –

+0

oh oui !!! J'ai juste oublié d'enlever "Final" !!! je vous remercie beaucoup –