MainActivity sayfamda bir ListFragment var. İşte benim parça nesneyi nasıl belirledim.Yığının tepesinden parça almanın bir yolu var mı?
FragmentManager fragmentManager = activity.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment newFragment = new MyFragment();
fragmentTransaction.replace(R.id.framecontainer, newFragment, "tag");
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
sorun kullanıcı geri düğmesine basın, ben, en azından,
getActionBar().setTitle(title);
getActionBar().setDisplayHomeAsUpEnabled(isEnabled);
invalidateOptionsMenu();
arayarak eylem çubuğunu ve menü değiştirmek zorunda zaman Şu anda gösterilenden parçanın ne tür bilmek zorunda olduğunu , böylece eylem çubuğunu nasıl ayarlayacağımı biliyorum. Ayar seçeneğini argüman olarak parçalı olarak saklıyorum.
String title = fragment.getArguments().getString("KEY_TITLE");
boolean isEnabled = fragment.getArguments().getBoolean("KEY_ISENABLED");
ben ilgili soru arama yapmak ve ben özel bir yığın tüm etiketi saklamak ve (pop aramak zorunda ben Ancak
MyFragment fragment = (MyFragment) getSupportFragmentManager()
.findFragmentByTag("tag");
arayarak fragman alabilir fark) onBackPressed()
'da kullanıcı geri düğmesine bastığında her zaman.
Yani, benim sorum şu: o anki görünür parçayı doğrudan yığıntan almanın bir yolu var mı?
Not: Parça türlerinin yalnızca farklı bir bölüm değil, yalnızca farklı bölümler olduğunu unutmayın.
Ben yoluna yaparsan, ben ayarlamak zorunda gibi görünüyor * * fragmentTransaction.addToBackStack (tag) ** da; Aksi takdirde, bir NullPointerException alırdım. Yani ** fragmentManager.getBackStackEntryAt (fragmentManager.getBackStackEntryCount() - 1) .getName(); ** etiket adı –
Yea'ya başvurmazsınız ... sıfırları ve kötü matematik için kontrol etmeniz gerekir ((getBackStackEntryCount-1)> 0 ve benzeri).Bunu çok hızlı yazdım. Ayrıca, etiketsiz eklenen fragmanlar boş olarak görünecektir. AddToBackStack (boş) kullanırsam – petey
hala çalışır mı? – umerk44