Я видел этот пост, но решения, размещенные здесь, не работают для меня: получить последний фрагмент в backstack
Когда я заменяю фрагмент на другой, я использую:
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.replace(android.R.id.tabcontent, fragment, tag);
ft.addToBackStack(null);
ft.commit();
Итак, обратите внимание, что я использую теги для обнаружения любого фрагмента.
Моя проблема в частности заключается в следующем:
Предположим, что у меня есть фрагмент_А, фрагмент_B и фрагмент_C. Я могу добраться до фрагмента_C от фрагмента_А или фрагмента_B, и в зависимости от родителя вызова мне нужно сделать что-то конкретное. Итак, снова мне нужно восстановить последний ФРАГМЕНТ в заднем стеке.
Когда я пытаюсь сделать:
FragmentManager fm = getSupportFragmentManager();
for(int entry = 0; entry < fm.getBackStackEntryCount(); entry++){
String ide = fm.getBackStackEntryAt(entry).getName();
Log.i("TAG", "Found fragment: " + ide);
}
Я получаю nulls. Если я использую getId() вместо этого, я получаю числа, поэтому я попытался сделать:
int id = fm.getBackStackEntryAt(entry).getId();
Fragment fragment = fm.findFragmentById(id);
Log.i("TAG", "Found fragment: " + fragment.getTag());
Но я получаю nulls.. Я не знаю, что еще делать, поэтому любая помощь будет оценена.
Изменить: я вызываю эти методы в onBackPressed() {...}