一、需要的知識
1、常見的幾種布局,線性布局LinearLayout、相對布局RelativeLayout、框架布局FrameLayout.
2、涉及常見幾種控件,單選按鈕RadioButton、下拉框Spinner、編輯框EditText、復選框CheckBox、按鈕、對話框AlertDialog。
3、Activity的生命周期、傳值等。
二、代碼實現(xiàn)
1、實現(xiàn)目標。
分密碼和驗證碼兩種方式登錄,點擊忘記密碼可以更換密碼,登錄成功彈出dialog。

2、具體實現(xiàn)
(1)在AndroidManifest.xml 中配置<activity android:name=".TestLoginActivity"></activity>
? (2) ?res/layout下面新建頁面的xml文件,最外層是LinearLayout ?下面是RadioGroup,然后RelativeLayout里面是TextView和Spinner,然后RelativeLayout 里面是TextView和EditText,然后RelativeLayout里面是TextView和FrameLayout ?FrameLayout包含EditText和Button,最后就是記住密碼的CheckBox和Button。
代碼如下:



(3)Activity編寫邏輯代碼 大概思路:實現(xiàn)RadioGroup.OnCheckedChangeListener、AdapterView.OnItemSelectedListener、CompoundButton.OnCheckedChangeListener、TextWatcher、OnClickListener 這幾個接口,添加對應頁面的監(jiān)聽,前一個頁面打包好數(shù)據(jù) 調用startActivityForResult,下個頁面接受處理,在返回前一個頁面時,打包參數(shù)調用setResult finish()方法,最后前一個頁面重寫onActivityResult方法處理返回的數(shù)據(jù)。
核心代碼:



(4)最后記錄一下 activity生命周期 頁面A->B
頁面之間跳轉:總體上是A頁面先調用onPause方法,然后B頁面依次調用onCreate/onRestart->onStart->onResume 最后A頁面onStop (返回上一級頁面,下級頁面還會調用一下onDestroy)。
橫豎屏切換: 原屏幕頁面onPause 到 onStop 到onDestroy 一路銷毀,然后新頁面onCreate?onStart?onResume。
按住Home鍵與返回app:從活動狀態(tài)變?yōu)闀和顟B(tài),點擊操作之后 又變?yōu)榛顒訝顟B(tài)。