startActivityForResult Demo

  startActivityForResult(Itent intent, int requestCode)用来唤起一个Activity。利用这个方法,前一个Activity1便会有一个等待次Activity2的返回,返回时响应onActivityResult(int requestCode, int resultCode, Intent data)方法。
  Demo如下:
  第一个activity
 
package com.kevin.intent;

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 Main extends Activity implements OnClickListener{
	private Button btn_transfer;
	private EditText et_name;
	private int requestCode = 1;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btn_transfer = (Button) findViewById(R.id.button1);
        et_name = (EditText) findViewById(R.id.editText1);
        btn_transfer.setOnClickListener(this);
    }

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		System.out.println("requestCode--->" + requestCode);
		// resultCode是第二个Activity返回过来的值
		switch (resultCode) {
		case RESULT_OK:
			// 获取Bundle对象
			Bundle returnedBundle = data.getExtras();
			String returnedName = returnedBundle.getString("name");
			et_name.setText(returnedName);
			break;

		default:
			break;
		}
	}

	@Override
	public void onClick(View v) {
		// 取得et_name的值
		String name = et_name.getText().toString();
		Bundle bundle = new Bundle();
		bundle.putString("name", name);
		Intent intent = new Intent();
		intent.setClass(this, Activity_1.class);
		intent.putExtras(bundle);		
		// 启动Activity_1
		startActivityForResult(intent, requestCode);
	}
    
}

  跳转后的activity
package com.kevin.intent;

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;

public class Activity_1 extends Activity implements OnClickListener{
	private Button btn_return;
	private TextView textView;
	private Intent intent;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity1);
        intent = this.getIntent();
        Bundle bundle = intent.getExtras();
        String name = bundle.getString("name");
        System.out.println("name --- >" + name);
        textView = (TextView) findViewById(R.id.tv_receivedname);

        textView.setText("传过来的name值为: " + name);
        
        btn_return = (Button) findViewById(R.id.btn_return);
        btn_return.setOnClickListener(this);
    }
	@Override
	public void onClick(View v) {
		// 点击返回按钮后,设置返回值
		setResult(RESULT_OK, intent);
		this.finish();
	}
}

你可能感兴趣的:(android)