startActivityForResult的用法和demo

作者:Liaodeity - 2015年11月01日

有时候我们需要把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如何使用呢:

 

package com.cn.activityresult.demo;

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.TextView;
import android.widget.Toast;

public class MainAcitvity extends Activity {

	private Button btn01;
	private TextView tv01;
	public static final int REQUSET = 1;

	@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);
			}
		});

	}
}

 

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();
			}
		});         
    }
}

 

来源于: http://b275518834201204034558.iteye.com/blog/1514563

本文作者: Liaodeity

本文链接: https://www.jianbaizhan.com/article/316

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!