Android – 模拟后退button

当我按下我的应用程序中的button,我需要返回到最后一个活动。

有任何想法吗?

从要结束的活动调用finish()应该处理这个问题。

编辑许多年后:这仍然有效,但它是一个强硬的手段。 当我最初发布这个消息的时候, Fragments并不存在,而且(正如几位评论者所指出的),当涉及到Fragments时候,这不会以相同的方式工作。 如果你使用Fragments.现在有更好的方法Fragments.

只是为了logging:在某些情况下,所描述的方法与后退button不同,但您可以调用

 this.onBackPressed(); 

要么

 getActivity().onBackPressed(); 

如果你在一个片段中实现相同的行为。

当使用碎片时:

 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-ie-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(); } } 

例如,可以调用该代码来实现取消button。

  if (theButton.getId() == R.id.btnStatusCancel) { StaticMethods.fragmentImplementCancel(this); } 

你可以欺骗一个向上的button调用返回button按下:

 @Override public void onBackPressed() { onNavigateUp(); }