from fragments example delete backstack addtobackstack android android-fragments back-stack

android - fragments - Obtener el último fragmento en la pila posterior



get fragments from backstack (1)

Si está utilizando BackStackEntry.getName() , debería ser:

ft.replace(android.R.id.tabcontent, fragment, tag); ft.addToBackStack(tag);

He visto esta publicación, pero las soluciones publicadas aquí no me funcionan: obtenga el último fragmento en backstack

Cuando reemplazo un fragmento por otro uso:

FragmentManager manager = getSupportFragmentManager(); FragmentTransaction ft = manager.beginTransaction(); ft.replace(android.R.id.tabcontent, fragment, tag); ft.addToBackStack(null); ft.commit();

Por lo tanto, tenga en cuenta que estoy usando etiquetas para detectar cualquier fragmento.

Mi problema en particular es el siguiente:

Supongamos que tengo fragment_A, fragment_B y fragment_C. Puedo obtener fragment_C de fragment_A o fragment_B y, dependiendo del padre de la llamada, tengo que hacer algo en particular. Entonces, nuevamente necesito recuperar el último FRAGMENTO en la pila de respaldo.

Cuando trato de hacer:

FragmentManager fm = getSupportFragmentManager(); for(int entry = 0; entry < fm.getBackStackEntryCount(); entry++){ String ide = fm.getBackStackEntryAt(entry).getName(); Log.i("TAG", "Found fragment: " + ide); }

Tengo nulos. Si utilizo getId (), obtengo los números, así que intenté:

int id = fm.getBackStackEntryAt(entry).getId(); Fragment fragment = fm.findFragmentById(id); Log.i("TAG", "Found fragment: " + fragment.getTag());

Pero obtengo nulos ... No sé qué más hacer, por lo que cualquier ayuda será apreciada.

Editar: llamo a este método en onBackPressed () {...}