三种方式:
1.调用系统使用的Action Bar
Action Bar是一种新増的导航栏功能,在Android 3.0之后加入到系统的API当中,它标识了用户当前操作界面的位置,并提供了额外的用户动作、界面导航等功能。
简单来说,就是系统提供的标准组件,让我们方便的实现后退功能。
ActionBar的添加非常简单,只需要在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类就可以了。
但有一点要注意的是,如果要在Java代码中操作ActionBar,例如setTitle,指定其文字,必须在onStart方法中进行,而不能是onCreate方法,因为在系统周期中,onStart方法时View才是可见的。
@Override
public void onStart() {
super.onStart();
if (mIsInProvision) {
getActionBar().setTitle(R.string.connect_to_internet);
}
}
另外,如果要处理action bar的点击事件,例如点击action bar时禁止后退,只需要在
onOptionsItemSelected
方法中处理
android.R.id.home
的事件就可以了。id.home就是action bar的id。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home: 6 return false;12 }
return super.onOptionsItemSelected(item);
}
如上的代码,点击action bar将不能回退。
2.自己定义按钮实现back逻辑
例如back的id为R.id.back,在onClick方法中,switch case中调用finish方法,case R.id.back: finish();back();
如果你是在Activity里面做的话:Activity.this.finish();
如果你是在Fragment里面做的话:getActivity().finish();
原理:Android是使用栈来管理Activity的,也就是先进后出的原则。我们每打开一个Activity,就会被压入栈顶,于是调用finish()方法或返回键都会被栈顶弹出(等待系统回收)。这样当一Activity被finish掉,上一个未finish掉的Activity就会被激活,就这样。。
3.手机上的返回键
处理此按键的后退功能,只需要在onBackPressed方法中就可以。
@Override
public boolean onBackPressed() {
return true;
}