通过Intent,向下活动传递数据,向上活动传递数据,当按下收集返回按钮时返回的数据

向下一个活动传递数据
在第一个活动中的代码输入:
在一个按钮事件中
String data =”hello World!”;
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra(“extra_data”,data);
startActivity(intent);

Intent的构造函数的两个参数,第一个为本活动,第二个为要传输的第二个活动字节。
通过Intent 提供的putExtra来将数据传递,有两个参数,第一个参数是个类似于字符串的ID,第二个参数为需要传递的字符串。

在第二个活动中输入以下代码:
在onCreate这个函数中以下代码
Intent intent = getIntent();
String data = intent.getStringExtra(“extra_data”);
Log.d(“SecondActivity”,data);
第一行:获取Intent传入本Intent中,
第二行:通过getStringExtra函数进行传入,参数为上一个字符串样式的ID。如果传入的数值为整型时,getIntExtra()一样的,则为getXxxExtra()类似。
第三行:在控制台上输出字符串。

通过点击第一个活动的按钮事件,则会将活动一定义好的字符串传递给活动二,并在控制台上显示信息。

向上活动传递数据
接受第二个活动发送的数据,需要运用函数startActivityForResult()
在第一个活动中输入以下代码:
在一个事件中:
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
//用startActivityForResult这个方法来启动SecondActivity这个活动
startActivityForResult(intent,1);

startActivityForResult的第一个参数为intent,第二个参数为请求码。

第二个活动的一个事件中输入以下代码:
Intent intent = new Intent();
intent.putExtra(“data_return”,”hello FirstAcitvity”);
setResult(RESULT_OK,intent);
finish();//当按下这个按钮,撤销这个活动的时候,就会在控制台返回头上的hello FirstAcitvity。

第三行:这个方法是专门向上返回数据的。第一个参数用于向上一个活动返回处理结果,一般为RESULT_OK或者RESULT_CANCELED,第二个参数则把带有数据的Intent传递回去。然后调用finish();方法。
接着在第一个活动中重写接下来这个方法。
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
switch (requestCode) {
case 1:
if(resultCode==RESULT_OK){
String returndata = data.getStringExtra(“data_return”);
Log.d(“FirstActivity”,returndata);
}
break;
default:
}

}

当按下第二个活动中的按钮的时候,就会把第二个活动中定义好的字符串打印到控制台上面

当按下收集返回按钮时返回的数据
第二个活动中的代码:按下返回键就会把要传递的数据传递给第一个活动,让第一个活动输出。
public void onBackPressed(){
Intent intent = new Intent();
intent.putExtra(“data_return”,”xixixixiixi”);
setResult(RESULT_OK,intent);
finish();

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值