0

У меня есть одна деятельности с выдвижным ящиком, в которомфрагмента обратно стека извлечение активности

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_dashboard); 

    mFragmentManager = getSupportFragmentManager(); 

    ....... 

    result = new DrawerBuilder() 
      .withActivity(this) 
      .withToolbar(toolbar) 
    ...... 
    .withOnDrawerNavigationListener(new Drawer.OnDrawerNavigationListener() { 
       @Override 
       public boolean onNavigationClickListener(View clickedView) { 


        if(getSupportFragmentManager().getBackStackEntryCount() > 0) { 
         getSupportFragmentManager().popBackStack(); 

        } 
        //return true if we have consumed the event 
        return true; 
       } 
      }) 

    getSupportFragmentManager().addOnBackStackChangedListener(this); 
    shouldDisplayHomeUp(); 

    mFragmentTransaction = mFragmentManager.beginTransaction(); 
    mFragmentTransaction.replace(R.id.content_frame, new DashboardFragment(), TAG); 
    mFragmentTransaction.commit(); 
} 

....... 

@Override 
public void onBackStackChanged() { 
    shouldDisplayHomeUp(); 
} 

public void shouldDisplayHomeUp(){ 
    //Enable Up button only if there are entries in the back stack 
    boolean canback = getSupportFragmentManager().getBackStackEntryCount() > 0; 
    if(canback) { 
     result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(false); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(canback); 
    }else{ 
     getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
     result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true); 
    } 
} 

И в моем фрагменте ....

FragmentManager fragmentManager = getFragmentManager(); 
       FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
       folderName = list.get(position).getName(); 
       //fragmentTransaction.add(R.id.content_frame, innerFolder, folderName + fragmentManager.getBackStackEntryCount()); 
       fragmentTransaction.add(R.id.content_frame, innerFolder, folderName); 
       fragmentTransaction.addToBackStack(folderName + fragmentManager.getBackStackEntryCount()); 
       fragmentTransaction.commit(); 
       getActivity().setTitle(folderName); 

Теперь я пытаюсь вытолкнуть каждое имя стеки фрагмента в действии, чтобы установить его в строку заголовка при нажатии кнопки вверх. Мне нужно, чтобы каждое имя фрагмента находилось в стеке при нажатии кнопки hone up. Но я застрял и не смог это сделать. Может ли кто-нибудь помочь ....

ответ

1

С этим вы будете в состоянии получить имя, которое вы установили в addToBackStack

FragmentManager fm = getSupportFragmentManager(); 
for (int i = 0; i < fm.getBackStackEntryCount(); ++i) { 
    Log.e("backstack",""+fm.getBackStackEntryAt(i).getName()); 
    fm.popBackStack(); 
} 
+1

ya показывает полный список фрагментов стека .... – Riten