今年剛剛跳槽到了新公司,也開始轉型做Android,由此開始Android的學習歷程。
最近在解很多UI的bug,在解bug過程中,總結了在UI的實現過程中,頁面返回上一頁面的幾種實現方式。
一. 自己布置一個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 }
以上就是自己在解Bug中總結的三種方式,作為小白,繼續學習Android~加油~
- 2016年5月6日午