Когда я нажимаю кнопку в своем приложении, мне нужно вернуться к последнему действию.Android - Simulate Back Button
Любые идеи?
Когда я нажимаю кнопку в своем приложении, мне нужно вернуться к последнему действию.Android - Simulate Back Button
Любые идеи?
Вызов finish()
от деятельности, которую вы хотите завершить, должен позаботиться об этом.
Редактировать много лет спустя: Это все еще работает, но это немного сложный подход. Когда я изначально разместил это, Fragments
не существовало, и (как отметили несколько комментаторов) это не работает совершенно так же, когда задействованы Fragments
. Есть лучшие подходы в настоящее время, если вы используете Fragments.
при использовании фрагментов:
getFragmentManager().popBackStack();
или
getSupportFragmentManager().popBackStack();
если вы используете android.support.v4.app пакет
Это относится к ситуации, когда один и тот же фрагмент иногда может быть единственным фрагментом в активности, а иногда и частью многократной активности, например, на планшете, где два Одновременно видны фрагменты.
/**
* Method that can be used by a fragment that has been started by MainFragment to terminate
* itself. There is some controversy as to whether a fragment should remove itself from the back
* stack, or if that is a violation of the Android design specs for fragments. See here:
* http://stackoverflow.com/questions/5901298/how-to-get-a-fragment-to-remove-itself-i-e-its-equivalent-of-finish
*/
public static void fragmentImplementCancel(Fragment fragment) {
FragmentActivity fragmentActivity = fragment.getActivity();
FragmentManager fragmentManager = fragmentActivity.getSupportFragmentManager();
if (fragmentManager.getBackStackEntryCount() == 1) {
fragmentManager.popBackStack();
}
else {
fragmentActivity.finish();
}
}
Этот код можно вызвать, например, для реализации кнопки «Отмена».
if (theButton.getId() == R.id.btnStatusCancel) {
StaticMethods.fragmentImplementCancel(this);
}
Только для записи: Описанный метод не делает то же самое, как кнопка назад делает в некоторых случаях, но вы можете позвонить
this.onBackPressed();
или
getActivity().onBackPressed();
если вы находятся во фрагменте, чтобы добиться того же поведения.
Из того, что я могу сказать, это лучший ответ. Благодарю. –
Вы можете подделать вверх кнопку вызова на задней на кнопку печати:
@Override
public void onBackPressed() {
onNavigateUp();
}
Thats Rigth, так просто, извините .... – david
Нет необходимости извиняться, просто рад помочь! –
Это не имитирует кнопку «Назад». Если вы используете только действия, это нормально, но если вы используете фрагменты в активности, это закроет все фрагменты вместе с активностью. – tasomaniac