アプリのボタンを押すと、最後のアクティビティに戻る必要があります。
何か案は?
finish()
終了したいアクティビティからの呼び出しは、これに対処する必要があります。
何年も後に編集する:これはまだ機能しますが、少し手間のかかるアプローチです。私が最初にこれを投稿したとき、Fragments
存在しませんでした、そして(いくつかのコメント者が指摘したように)これはFragments
関係しているときはまったく同じようには機能しません。あなたが使用している場合、今より良いアプローチがありますFragments.
記録のために:説明されているメソッドは、場合によっては戻るボタンと同じようには機能しませんが、呼び出すことができます
this.onBackPressed();
また
getActivity().onBackPressed();
あなたがexacltyを達成するために断片にいるなら、同じ振る舞いをします。
フラグメントを使用する場合:
getFragmentManager().popBackStack();
また
getSupportFragmentManager().popBackStack();
android.support.v4.appパッケージを使用している場合
これは、同じフラグメントがアクティビティ内の唯一のフラグメントである場合や、2つのフラグメントが同時に表示されるタブレットなど、マルチフラグメントアクティビティの一部である場合がある場合に使用します。
/**
* 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);
}
戻るボタンを押すと、上ボタンの呼び出しを偽装できます。
@Override
public void onBackPressed() {
onNavigateUp();
}