У меня проблемы с пониманием Up Navigation в шаблоне Master Detail в Android. В режиме одиночной панели (для смартфонов) я использую ItemListActivity и ItemListFragment. Если элемент в элементе ListFragment щелкнут, вызывается ItemDetailFragment. Теперь, если я в этом ItemDetailFragment, я хочу вернуться к ItemListFragment щелчком по Up Navigation в ActionBar.Android: BackStack Navigation в Master Detail flow
Я понимаю это так: мне просто нужно заменить ItemDetailFragment на ItemListFragment или?
В моей ItemDetailFragment я использую этот код:
//OnClick auf ActionBar
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
FragmentTransaction trans = getFragmentManager().beginTransaction();
trans.replace(R.id.fragment_container, new ItemListFragment());
trans.commit();
return true;
}
return super.onOptionsItemSelected(item);
}
Но ItemListFragment тогда не в состоянии до DetailFragment называлась. Я хочу иметь тот же список, что и раньше.
Если я нажму кнопку «Назад», будет выполнено правильное действие, поэтому я должен просто выполнить обратный щелчок в навигации вверх?
Я добавил backstack с «вверх» и добавил эти строки в моей DetailFragment \t '// OnClick Ауф ActionBar \t @Override \t общественного булево onOptionsItemSelected (MenuItem элемент) { \t \t переключатель (item.getItemId()) { \t \t случай android.R.id.home:. \t \t \t android.app.FragmentManager человек = getActivity() getFragmentManager(); \t \t \t man.popBackStack ("up", 0); \t \t \t return true; \t \t} \t \t возвращение super.onOptionsItemSelected (item); \t}, но у меня все еще есть исключение NullPointer в ListFragment: 'feed = (RSSFeed) getActivity(). GetIntent(). GetExtras(). Get (" feed ");' Таким образом, ListFragment не совпадает с предыдущим , или? –
Вы добавили addToBackStack ("вверх"); в вашем ListFragment? – Harish