Ben bu yazı gördük ama burada yayınlanan çözümler benim için çalışmıyor son parçasını alın: Başka bir parçası değiştirdiğinizde get the latest fragment in backstackgeri yığını
kullandığım:
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.replace(android.R.id.tabcontent, fragment, tag);
ft.addToBackStack(null);
ft.commit();
Yani, herhangi bir parçayı algılamak için etiketler kullandığımı lütfen unutmayın. Ben fragment_A, fragment_B ve fragment_C sahip varsayalım
: Özellikle
Benim sorun şudur. Fragment_C veya fragment_B'den fragment_C'ye ulaşabilirim ve aramanın özelliğine bağlı olarak belirli bir şeyi yapmak zorundayım. Yani, yine arka yığındaki son fragmanı kurtarmam gerek.
yapmam çalıştığınızda:
FragmentManager fm = getSupportFragmentManager();
for(int entry = 0; entry < fm.getBackStackEntryCount(); entry++){
String ide = fm.getBackStackEntryAt(entry).getName();
Log.i("TAG", "Found fragment: " + ide);
}
Ben boş değerlere olsun. Öyle herhangi bir yardım takdir edilecektir, başka ne bilmiyorum ..
int id = fm.getBackStackEntryAt(entry).getId();
Fragment fragment = fm.findFragmentById(id);
Log.i("TAG", "Found fragment: " + fragment.getTag());
Ama boş değerlere almak: Bunun yerine getId() kullanırsanız, yaptığım çalıştı yüzden sayıları olsun.
Düzenleme: Eğer BackStackEntry.getName()
kullanıyorsanız ben onBackPressed() bu yöntemlerin {...}
haklısın, ben buydu eksik. Teşekkürler! – kiduxa
, eklenmesi veya değiştirilmesi gereken parça için aynı etiketi kullanmak için kötü bir uygulama. ve aslında, işlemin bu parça ile ilgili olduğunu hatırlamak için önceki parçanın adı olması gereken backstack. –