1. 程式人生 > >Android頁面返回上一級的三種方式

Android頁面返回上一級的三種方式

一. 首先如果是自己佈置一個back的按鈕或圖片

   這個很簡單,當然就要自己寫回退實現的邏輯,例如back的id為R.id.back,在onClick方法中,switch case中呼叫finish方法,case R.id.back: finish();back();

二. 使用系統提供的Action Bar

       Action Bar是一種新増的導航欄功能,在Android 3.0之後加入到系統的API當中,它標識了使用者當前操作介面的位置,並提供了額外的使用者動作、介面導航等功能。       

       簡單來說,就是系統提供的標準組件,讓我們方便的實現後退功能。

       ActionBar的新增非常簡單,只需要在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子類就可以了。

       但有一點要注意的是,如果要在Java程式碼中操作ActionBar,例如setTitle,指定其文字,必須在onStart方法中進行,而不能是onCreate方法,因為在系統週期中,onStart方法時View才是可見的。

複製程式碼
1     @Override
2     public void onStart() {
3         super.onStart();
4         if (mIsInProvision) {
5             getActionBar().setTitle(R.string.connect_to_internet);
6         }
7 }
複製程式碼

  另外,如果要處理action bar的點選事件,例如點選action bar時禁止後退,只需要在onOptionsItemSelected方法中處理android.R.id.home的事件就可以了。id.home就是action bar的id。        

複製程式碼
 1     @Override
 2     public boolean onOptionsItemSelected(MenuItem item) {
 3         switch (item.getItemId()) {
 4             case android.R.id.home:
6 return false;12 } 13 return super.onOptionsItemSelected(item); 14 }
複製程式碼

  如上的程式碼,點選action bar將不能回退。

三. 機器上的back按鍵

      處理此按鍵的後退功能,只需要在onBackPressed方法中就可以。

1     @Override
2     public boolean onBackPressed() {
3         return true;
4     }