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;
}
}
R.id.content_main ist id von FrameLayout –
ich bin mit viewpager wie kann ich das tun. auch wo gebe ich das Stück Code – rmanalo
Ich aktualisiere meine Antwort !!! –