有時候我們需要把A activity提交資料給B activity處理,然後把結果返回給A
這種方式在很多種情況需要用到,比如我應用的程式需要有拍照上傳的功能。
一種解決方案是 我的應用程式 〉呼叫系統相機〉拍照〉關閉系統相機〉返回拍照後的照片到我的應用程式
啟動一個ForResult的意圖:
Intent intent = new Intent(MainAcitvity.this,
RequestActivity.class);
//傳送意圖示示為REQUSET=1
startActivityForResult(intent, REQUSET);
B Activity處理資料:
Intent intent=new Intent();
intent.putExtra(KEY_USER_ID, et01.getText().toString());
intent.putExtra(KEY_USER_PASSWORD, et02.getText().toString());
setResult(RESULT_OK, intent);
finish();
那麼startActivityForResult如何使用呢:
Java程式碼 

- ;
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- // TODO Auto-generated method stub
- super.onActivityResult(requestCode, resultCode, data);
- //requestCode標示請求的標示 resultCode表示有資料
- if (requestCode == MainAcitvity.REQUSET && resultCode == RESULT_OK) {
- String str = "賬號"
- + data.getStringExtra(RequestActivity.KEY_USER_ID) + "\n"
- + "密碼"
- + data.getStringExtra(RequestActivity.KEY_USER_PASSWORD);
- tv01.setText(str);
- }
- Toast.makeText(
- this,
- "requestCode=" + requestCode + ":" + "resultCode=" + resultCode,
- Toast.LENGTH_LONG).show();
- }
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn01 = (Button) findViewById(R.id.btn01);
- tv01 = (TextView) findViewById(R.id.tv01);
- btn01.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- Intent intent = new Intent(MainAcitvity.this,
- RequestActivity.class);
- //傳送意圖示示為REQUSET=1
- startActivityForResult(intent, REQUSET);
- }
- });
- }
- }
Java程式碼 

- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
- public class RequestActivity extends Activity {
- private Button btn01;
- private EditText et01;
- private EditText et02;
- public static final String KEY_USER_ID="KEY_USER_ID";
- public static final String KEY_USER_PASSWORD="KEY_USER_PASSWORD";
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.request_activity);
- btn01=(Button)findViewById(R.id.btn01);
- et01=(EditText)findViewById(R.id.et01);
- et02=(EditText)findViewById(R.id.et02);
- btn01.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- Intent intent=new Intent();
- intent.putExtra(KEY_USER_ID, et01.getText().toString());
- intent.putExtra(KEY_USER_PASSWORD, et02.getText().toString());
- setResult(RESULT_OK, intent);
- finish();
- }
- });
- }
- }
- ActivityForResultDemo.zip (47.9 KB)
- 下載次數: 421