用Intent在Activity间传递数据

/*ActivityMain文件*/
import android.os.Bundle;
import android.util.Log;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
                
        OnClickListener listener1 = new OnClickListener(){
        	public void onClick(View v){
        		Intent intent1 = new Intent(MainActivity.this, Activity1.class);
        		intent1.putExtra("com.example.yzj.activity1", "数据来自MainActivity");  //存储键值对, 数据类型为bundle, 存于Extra
        		startActivityForResult(intent1, 1);                                   //打开子Activity
        	}
        };
       Button button1 = (Button)findViewById(R.id.button1);
       button1.setOnClickListener(listener1);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data){           //子Activity退出后执行
    		if(requestCode == 1){
    			if(resultCode == RESULT_CANCELED){
    				setTitle("Activity1被取消了");
    			}
    			if(resultCode == RESULT_OK){
    				String temp;
    				temp = data.getStringExtra("store");                       //获取子Activity存储的值
    				setTitle(temp);
    			}
    		}
    }

/*Activity1文件*/

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;

public class Activity1 extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_1);
        Bundle extra = getIntent().getExtras();   //获取启动Intent中的键值(Extra)
        String data = null;
        if(extra != null){
            data = extra.getString("com.example.yzj.activity1");  //获取键中的值(Bundle)
        }
        setTitle("Activity: "+data);

        
        OnClickListener listener2 = new OnClickListener(){
            public void onClick(View v){
                Bundle bundle = new Bundle();
                bundle.putString("store", "数据来自Activity1");    //构建键值对, 构建bundle
                Intent mIntent = new Intent();
                mIntent.putExtras(bundle);                       //存储键值对, 存入mIntent
                setResult(RESULT_OK, mIntent);                   //设置返回的结果, RESULT_OK or RESULT_CANCELED, 以及带数据的Intent
                finish();                
            }
        };                
        Button button2 = (Button)findViewById(R.id.button2);
        button2.setOnClickListener(listener2);
    }

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值