**從意圖返回結果**
startActivity()方法調用另一個活動,但并沒有返回結果給當前活動。此時如想從一個活動中回傳數據,就要使用startActivityForResult()方法。
**[點此獲取完整代碼~ ?](http://download.csdn.net/detail/u012904198/7311961)**
1、使用上一篇中創建的項目,在secondactivity.xml文件中添加文本框和按鈕,代碼如下:
~~~
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Please enter your name" />
<EditText
android:id="@+id/txt_username"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_OK"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="OK" />
~~~
2、在SecondActivity.java文件中添加onClick()方法,代碼如下:
~~~
public void onClick(View v) {
Intent data = new Intent();
EditText txt_username = (EditText) findViewById(R.id.txt_username);
// 使用setData()方法使用一個Intent對象回傳數據
data.setData(Uri.parse(txt_username.getText().toString()));
// setResult()方法設置結果碼和回傳給調用活動的數據
setResult(RESULT_OK, data);
// 關閉Activity
finish();
}
~~~
3、在MainActivity.java文件中添加如下代碼:
在onClick()方法中:
~~~
startActivityForResult(new Intent(this, SecondActivity.class),
request_Code);// 此方法調用一個活動并等待從此活動返回結果:傳入Intent對象和請求碼(僅為一個整數值,用于標識正在調用的活動)
~~~
自己定義的onActivityResult()方法:
~~~
// 當一個活動返回時,必須調用自己實現的onActivityResult()方法
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == request_Code) {// 檢驗請求碼
if (resultCode == RESULT_OK) {// 檢驗結果碼
Toast.makeText(this, data.getData().toString(),
Toast.LENGTH_SHORT).show();
}
}
}
~~~
4、運行,效果如下:
點擊按鈕:

輸入名字,點擊OK:

總結:
1、調用onstartActivityForResult()方法并設置好請求碼;
2、在被調用活動中,通過Intent對象回傳數據并設置結果碼(setData()方法和setResult()方法);
3、在調用活動中,自己定義onActivityResult()方法,先校驗請求碼和結果碼,再進行其它處理。
- 前言
- Android應用程序剖析
- (一)——生命周期
- (二)——使用Intent傳數據之通用方式
- (三)——使用靜態變量傳遞數據
- (四)——通過剪切板傳遞數據
- (五)——通過全局變量傳遞數據
- (六)——從Activity返回數據
- adt-bundle-linux-x86_64-20131030下新建工程提示找不到adb和R.java問題的解決
- Eclipse啟動時提示fail to create the Java Virtual Machine問題的解決
- Android常見UI組件之ListView(一)
- Android常見UI組件之ListView(二)——定制ListView
- (七)——顯示對話框窗口
- (八)——顯示進度對話框
- (九)——更復雜的進度對話框
- (十)——使用意圖鏈接活動
- (十一)——從意圖返回結果
- (十二)——使用意圖傳遞數據的幾種方式
- (十三)——碎片(一)
- (十四)——在運行時添加碎片(附源碼)
- (十五)——碎片的生命周期(附源碼)
- (十六)——碎片之間進行交互(附源碼)
- (十七)——使用意圖調用內置應用程序
- (十八)——使用意圖篩選器和實現瀏覽網頁(附源碼)