В настоящее время я работаю над приложением, состоящим из базовой активности, которая управляет несколькими фрагментами. Один из таких фрагментов представляет собой список, который при нажатии на элемент запускает действие сведений. Я хотел бы, чтобы, когда я нажимаю кнопку «Домой» ( Использование ABS ), приложение возвращалось к фрагменту списка, но вместо этого оно всегда возвращалось к фрагменту, который я указал по умолчанию.
Base Activity
Frag1 - Default
Frag2
Frag3 -> DetailsActivity
Когда кнопка «Домой» нажата из DetailsActivity, я хочу вернуться к Frag3, вместо этого я иду к Frag1.
Любая помощь будет здорово. Вот код, который у меня есть в подробностях для обработки нажатия кнопки «Домой».
Основная деятельность:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// set the Above View
if (savedInstanceState != null)
mContent = getSupportFragmentManager().getFragment(savedInstanceState, "mContent");
if (mContent == null)
mContent = new HomeFragment();
// set the Above View
setContentView(R.layout.content_frame);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, mContent)
.commit();
// set the Behind View
setBehindContentView(R.layout.menu_frame);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.menu_frame, new SlidingMenuFragment())
.commit();
// customize the SlidingMenu
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
}
@Override
public void onSaveInstanceState(Bundle outState) {
getSupportFragmentManager().putFragment(outState, "mContent", mContent);
super.onSaveInstanceState(outState);
}
public void switchContent(Fragment fragment) {
getSlidingMenu().showContent();
mContent = fragment;
getSupportFragmentManager()
.beginTransaction()
.addToBackStack("test")
.replace(R.id.content_frame, fragment)
.commit();
}
Подактивность:
@Override
public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}