2016-04-12 18 views
0

Ich muss ein Fragment basierend auf dem Menü-ID-Array vom Server abgerufen werden. Ich habe bereits die Menü-ID abgerufen, aber ich weiß nicht, wie ich das entsprechende Fragment für diese ID ersetzen soll. Muss ich den Fragmentmanager und die Fragmenttransaktion verwenden? Ich kann getSupportFragmentManager oder getFragmentManager nicht in FragmentStatePagerAdapter verwenden. Ich habe framelayout vorher aber nicht viewpager benutzt. bitte helfenersetzen Fragment in fragmentstatepagereadapter

dies mein Code

public class PagerAdapter extends FragmentStatePagerAdapter { 
    int mNumOfTabs; 
    String tabName; 
    PreferencesHelper prefHelp; 
    final FragmentManager disablefm; 
    SharedPreferences disabledMenu; 
    SharedPreferences.Editor editor; 

    Context ctx; 

    public PagerAdapter(FragmentManager fm, int NumOfTabs, Context context) { 
     super(fm); 
     this.mNumOfTabs = NumOfTabs; 
     disablefm = fm; 
     ctx = context; 
    } 

    @Override 
    public Fragment getItem(int position) { 

     switch (position) { 
      case 0: 
       CallFragment tab1 = new CallFragment(); 
       return tab1; 
      case 1: 
       ChatFragment tab2 = new ChatFragment(); 
       return tab2; 
      case 2: 
       RoomServiceMenu tab3 = new RoomServiceMenu(); 
       return tab3; 
      case 3: 
       HouseKeepingFragment tab4 = new HouseKeepingFragment(); 
       //MealFragment tab4 = new MealFragment(); 
       return tab4; 
      case 4: 
       //dnd 
       DndFragment tab5 = new DndFragment(); 
       return tab5; 
      case 5: 

       //open door 
       OpenDoorFragment tab6 = new OpenDoorFragment(); 
       return tab6; 
      case 6: 
       ServiceFragment tab7 = new ServiceFragment(); 
       return tab7; 
      case 7: 

       //chauffeur 
       ChauffeurFragment tab8 = new ChauffeurFragment(); 
       return tab8; 
      case 8: 
       SpecialOfferFragment tab9 = new SpecialOfferFragment(); 
       return tab9; 
      default: 
       return null; 
     } 
    } 

    private void loadPref(){ 
     disabledMenu = PreferenceManager.getDefaultSharedPreferences(ctx); 
     int disabledmenuSize = Integer.parseInt(prefHelp.getPreferences("disable menu length")); 
     String disabledMenuarray[] = new String[disabledmenuSize]; 
     Log.d("log1", "disabled menu len: "+disabledmenuSize); 
     for(int u = 0; u < disabledmenuSize; u++){ 

      disabledMenuarray[u] = prefHelp.getPreferences("disabledMenuId"+u); 
      Log.d("log1", "disabled menu id# "+u+" id: "+Arrays.toString(disabledMenuarray)); 
      if(Arrays.asList(disabledMenuarray).contains("20")){ 
       Log.d("log1", "main | pref contain id 20"); 
       //disable call fragment 
      } 
     } 
    } 
    @Override 
    public int getCount() { 
     return mNumOfTabs; 
    } 
} 

Antwort

0

erstellen NameFragment Fragment erweitern

import android.support.v4.app.Fragment; 

Beispiel

public class YourNameFragment extends Fragment { 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View root = inflater.inflate(R.layout.your_name_xml_framgent, container, false); 

//Enter code here 

return root; 
} 

In OnCreateView Ort ist, dass Sie Code schreiben können

+0

R.id.content_main ist id von FrameLayout –

+0

ich bin mit viewpager wie kann ich das tun. auch wo gebe ich das Stück Code – rmanalo

+0

Ich aktualisiere meine Antwort !!! –

0

hey ich habe schon herausgefunden, wie ich das machen kann, was ich will.

hier ist mein Code:

public class PagerAdapter extends FragmentStatePagerAdapter { 
    int mNumOfTabs; 
    String tabName; 
    PreferencesHelper prefHelp; 
    FragmentManager disablefm; 
    SharedPreferences disabledMenu; 
    SharedPreferences.Editor editor; 

    Context ctx; 
    Boolean roomSrvOn, houseKeepOn, dndOn, doorOn, spaOn, chauffeurOn, offerOn, callOn; 

    public PagerAdapter(FragmentManager fm, int NumOfTabs, Context context) { 
     super(fm); 
     this.mNumOfTabs = NumOfTabs; 
     disablefm = fm; 
     ctx = context; 
     disabledMenu = PreferenceManager.getDefaultSharedPreferences(ctx); 
     Log.d("log1", "pager ctx: "+ctx); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     roomSrvOn = true; 
     houseKeepOn = true; 
     dndOn = true; 
     doorOn = true; 
     spaOn = true; 
     chauffeurOn = true; 
     offerOn = true; 
     callOn = true; 
     //disable menu 

     prefHelp = new PreferencesHelper(ctx); 
     int disabledmenuSize = ((MainActivity)ctx).disabledmenuSize; 
     String disabledMenuarray[] = new String[disabledmenuSize]; 
     Log.d("log1", "pager | disabled menu len: "+disabledmenuSize); 
     for(int u = 0; u < disabledmenuSize; u++){ 

      disabledMenuarray[u] = prefHelp.getPreferences("disabledMenuId"+u); 
      Log.d("log1", "pager | disabled menu id# "+u+" id: "+Arrays.toString(disabledMenuarray)); 
      if(Arrays.asList(disabledMenuarray).contains("20")){ 
       Log.d("log1", "pager | call disabled"); 
       callOn = false; 
      }else if(Arrays.asList(disabledMenuarray).contains("10")){ 
       Log.d("log1", "pager | room service disabled"); 
       roomSrvOn = false; 
      }else if(Arrays.asList(disabledMenuarray).contains("8")){ 
       Log.d("log1", "pager | house keeping disabled"); 
       houseKeepOn = false; 
      }else if(Arrays.asList(disabledMenuarray).contains("17")){ 
       Log.d("log1", "pager | dnd disabled"); 
       dndOn = false; 
      }else if(Arrays.asList(disabledMenuarray).contains("14")){ 
       Log.d("log1", "pager | open door disabled"); 
       doorOn = false; 
      }else if(Arrays.asList(disabledMenuarray).contains("11")){ 
       Log.d("log1", "pager | spa disabled"); 
       spaOn = false; 
      }else if(Arrays.asList(disabledMenuarray).contains("19")){ 
       Log.d("log1", "pager | chauffuer disabled"); 
       chauffeurOn = false; 
      }else if(Arrays.asList(disabledMenuarray).contains("18")){ 
       Log.d("log1", "pager | offer disabled"); 
       offerOn = false; 
      } 
     } 

     switch (position) { 
      case 0: 
       if(callOn == false){ 
        DisabledFragment tab1 = new DisabledFragment(); 
        return tab1; 
       }else { 
        CallFragment tab1 = new CallFragment(); 
        return tab1; 
       } 

      case 1: 
        ChatFragment tab2 = new ChatFragment(); 
        return tab2; 
      case 2: 
       if(roomSrvOn == false){ 
        DisabledFragment tab3 = new DisabledFragment(); 
        return tab3; 
       }else { 
        RoomServiceMenu tab3 = new RoomServiceMenu(); 
        return tab3; 
       } 
      case 3: 
       if(houseKeepOn == false){ 
        DisabledFragment tab4 = new DisabledFragment(); 
        return tab4; 
       }else { 
        HouseKeepingFragment tab4 = new HouseKeepingFragment(); 
        //MealFragment tab4 = new MealFragment(); 
        return tab4; 
       } 
      case 4: 
       if(dndOn == false){ 
        DisabledFragment tab5 = new DisabledFragment(); 
        return tab5; 
       }else { 
        //dnd 
        DndFragment tab5 = new DndFragment(); 
        return tab5; 
       } 
      case 5: 
       if(doorOn == false){ 
        DisabledFragment tab6 = new DisabledFragment(); 
        return tab6; 
       }else { 
        //open door 
        OpenDoorFragment tab6 = new OpenDoorFragment(); 
        return tab6; 
       } 
      case 6: 
       if(spaOn == false){ 
        DisabledFragment tab7 = new DisabledFragment(); 
        return tab7; 
       }else { 
        ServiceFragment tab7 = new ServiceFragment(); 
        return tab7; 
       } 
      case 7: 
       if(chauffeurOn == false){ 
        DisabledFragment tab8 = new DisabledFragment(); 
        return tab8; 
       }else { 
        //chauffeur 
        ChauffeurFragment tab8 = new ChauffeurFragment(); 
        return tab8; 
       } 
      case 8: 
       if(offerOn == false){ 
        DisabledFragment tab9 = new DisabledFragment(); 
        return tab9; 
       }else { 
        SpecialOfferFragment tab9 = new SpecialOfferFragment(); 
        return tab9; 
       } 
      default: 
       return null; 
     } 
    } 
Verwandte Themen