一個Activity激活另一個Activity的時候可以傳送數據到另一個Activity,同理,當另一個Activity結束時,可以返回數據到激活它的Activity中。
工具/原料
eclipse
方法/步驟
激活端:和一般激活另一個Activity的方法不一樣的是,激活函數應該用
startActivityForResult(intent, requestCode),其中requestCode為請求碼,如果多個地方調用了這個函數,就是可以通過設置不同的請求碼區分是那個地方的調用的這個方法,當只調用了一次,請求碼失去意義。
被激活端:首先調用方法Intent intent = getIntent()獲得意圖,如果接收數據時已經獲得意圖,則不用重新獲得。然後把數據put到意圖中再調用
setResult(resultCode,intent)方法設置好返回的數據。其中resultCode為結果碼。finish()方法用於結束當前獲得,獲得啟動這個Activity的Activity。
被激活端:程序可能在不同的地方結束這個活動,而區分在哪裡結束的就是通過設置不同的結果碼resultCode。
激活端:要處理返回的數據,必須在激活端重寫onActivityResult(int requestCode, int resultCode, Intent data),被激活端結束返回到激活端就會自動調用這個方法,通過這個方法可以獲得請求碼、結果碼、數據(Intent)。
按返回鍵出錯處理:按下返回鍵默認是不返回數據的,所以上面的程序運行在被激活端時按下返回鍵就會出錯,因為onActivityResult(int requestCode, int resultCode, Intent data)方法沒有數據處理。在被激活端重寫返回鍵默認的處理方法就可以解決。
運行效果圖:圖1為被激活活動,圖2為單擊發送按鈕後返回激活活動,圖3為單擊取消按鈕或者按下返回鍵後返回激活界面。