0

ich eine Tätigkeit mit Schublade haben, in demFragment zurück Stapel abrufen in Aktivität

@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); 
    } 
} 

Und in meinem Fragment ....

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); 

Jetzt versuche ich, jedes Fragment Stapel Namen aus Pop in der Aktivität, um es in die Titelleiste zu setzen, wenn gedrückt nach oben gedrückt wird.Ich brauche jeden Fragment-Namen, der im Stapel ist, wenn gedrückt hone up button.Aber ich bin stecken und kann nicht so tun .. kann jemand helfen ....

Antwort

1

Mit diesem werden Sie sein in der Lage, Name zu bekommen, die Sie in addToBackStack

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

ya haben, zeigt es die Backstapel Fragmentliste .... – Riten