Pauland

LoadFragment SlidingMenu

Dec 4th, 2012
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.31 KB | None | 0 0
  1. /***** CODE DANS LE FRAGMENT LEFTMENU ****/
  2. @Override
  3. public void onListItemClick(final ListView l, View v, final int position, long id)
  4. {
  5.     ((SlidingFragmentActivity) this.getActivity()).toggle();
  6.     LeftMenuItem leftMenuItem = (LeftMenuItem) l.getAdapter().getItem(position - l.getHeaderViewsCount());
  7.  
  8.     if (leftMenuItem.FragmentClass.equalsIgnoreCase(FragmentLogin.class.getName()))
  9.     {
  10.         if (!AccountManager.GetLocalUser(this.getActivity()).IsConnected())                 this.mOnLeftMenuClickListener.onMenuItemClick(leftMenuItem.FragmentClass);
  11.         else        this.mOnLeftMenuClickListener.onMenuItemClick(leftMenuItem.OptionalFragmentClass);
  12.     }
  13.     else
  14.         this.mOnLeftMenuClickListener.onMenuItemClick(leftMenuItem.FragmentClass);
  15. }
  16.  
  17.  
  18. /**** CODE DANS MON MAIN ACTIVITY ****/
  19. @Override
  20. public void onMenuItemClick(final String classFragment)
  21. {
  22.     try
  23.     {
  24.         Class<?> cl = Class.forName(classFragment);
  25.         Object obj = cl.newInstance();
  26.  
  27.         if (obj instanceof Fragment)
  28.         {
  29.             final Fragment fragment = (Fragment) obj;
  30.             Fragment currentFragment = ActivityHome.this.getSupportFragmentManager().findFragmentByTag("content");
  31.  
  32.             if (currentFragment == null || !currentFragment.getClass().equals(fragment.getClass()))
  33.             {
  34.                 Handler h = new Handler();
  35.                 Runnable r = new Runnable()
  36.                 {
  37.  
  38.                     @Override
  39.                     public void run()
  40.                     {
  41.                         ActivityHome.this.LoadFragment(fragment, false, true);
  42.                     }
  43.                 };
  44.                 h.postDelayed(r, 160);
  45.             }
  46.         }
  47.     }
  48.     catch (Exception e)
  49.     {
  50.         e.printStackTrace();
  51.     }
  52. }
  53.  
  54.  
  55. /**** CODE DANS MON BASEACTIVITY *****/
  56.  
  57. //Chargement "standard" d'un fragment avec animation
  58. public void LoadFragment(Fragment fragment)
  59. {
  60.     this.LoadFragment(fragment, true, false);
  61. }
  62.  
  63.  
  64. public void LoadFragment(Fragment fragment, Boolean withAnim, Boolean resetBackStack)
  65. {
  66.     FragmentManager fm = this.getSupportFragmentManager();
  67.     FragmentTransaction t = fm.beginTransaction();
  68.     if (withAnim)
  69.         t.setCustomAnimations(R.anim.fragment_enter, R.anim.fragment_exit, R.anim.fragment_enter, R.anim.fragment_exit);
  70.     t.replace(R.id.tabcontent, fragment, "content");
  71.     if (resetBackStack)
  72.         fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
  73.     else
  74.         fm.popBackStack(fragment.getClass().getName(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
  75.     t.addToBackStack(fragment.getClass().getName());
  76.  
  77.     t.commit();
  78. }
Advertisement
Add Comment
Please, Sign In to add comment