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 () {...}