使用putExtra()在Activity和子Activity之间传递数据

本文详细介绍了如何在Android中通过putExtra()方法在FirstActivity和其子Activity SecondActivity之间进行数据传递。包括从父Activity向子Activity传递数据的步骤以及从子Activity回传数据到父Activity的注意事项,强调了在处理多个子Activity时如何区分数据来源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当前FirstActivity,子Activity为SecondActivity。

可以通过按钮点击事件触发数据传递

1.在FirstActivityz向SecondActivity传递数据:

(1)传递过程:

private int SecondActivity = 1;

button.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v) {
        String data = "hello";
        Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
        intent.putExtra("_data", data);
        startActivityForResult(intent, SecondActivity);
    }
});

(2)获取过程:

在SecondActivity中取数据

Intent intent = getIntent();
String data = intent.getStringExtra("_data");
getIntent()是用来获取父Activity的方法。
因为传递的字符串,所以用getStringExtra(),若是整型则用getIntExtra(),以此类推。


2.在SecondActivity中传递数据给FirstActivity:

因为SecondActivity是FirstActivity的子Activity,

一个父Activity可以有多个子Activity,为了知道是哪一个子Activity传送来的数据,

(1)传递过程:

button.setOnClickListener(new View.OnClickListener(){

    @Override
    public void onClick(View v) {
        String data = "hello";
        Intent intent = new Intent();
        intent.putExtra("_return", data);
        setResult(RESULT_OK, intent);
        finish();
    }
});
第一个参数为返回状态RESULT_OK

(2)获取过程:

protected void onActivityResult(int requestCode, int resultCode, Intent data){
    switch(requestCode){
        case 1:
            if(resultCode == RESULT_OK){
                String _return = data.getStringExtra("_return");
                text1.setText(_return);
            }
            break;
        default:
    }
}
改方法的第一个参数是子Activity的编号,用来确定子Activity。第二个参数是子Activity的返回状态。第三个参数是数据。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值