Android返回上一页面的方式

三种方式: 

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;
     }



你可能感兴趣的:(Android)