Android之使用Intent向下一个活动传递数据

呃呃,这也许是我这几天来第一次郑重的写东西,更有趣的是此篇也是我在csdn上的第一篇博客,不是我太无聊,但总觉着的要写点什么,毕竟学了很多东西都忘了,权当做时间的交代吧。作为大二学生和安卓菜鸟,请开始大佬的斧正:

向下一个活动传递数据,当然需要两个活动啦,这里命名为FirstActivity和SecondActivity。

首先介绍的是一个方法:putExtra(),提供两个参数:第一个参数是键,第二个参数是值(有点java中Map的意思,呃呃)

好吧,直接用代码做例子吧:

在FirstActivity中:

Intent intent0=new Intent(FirstActivity.this,SecondActivity.class);

intent0.putExtra("extra_string_data","需要传递的数据");

startActivity(intent0);

在SecondActivity中接收数据:

Intent intent=getIntent();

String getData=intent.getStringExtra("extra_string_data");//参数也就是刚刚的键值

当然,还有getIntExtra()和getBooleanExtra()等这些方法接收传递来的不同类型数据;


不过,安卓还提供了Bundle这个方法,所以有了putExtras()这个方法;

举个例子应该不为过:

在FirstActivity中:Intent intent=new Intent(FirstActivity.this,SecondActivity.class);

Bundle bundle=new Bundle();

bundle.putString("iName","cheng");//传递字符串

bundle.putInt("iOld",20);//传递整型数据

intent.putExtras(bundle);

startActivity(intent);

在SecondActivity中:

Bundle bundle=getIntent.getExtras();

String name=bundle.getString("iName");

int old=bundle.getInt("iOld");


当然,你也可以通过new Bundle().putIntArray()来传递整型数组;不过我记得有一次要传递一个二维数组,呃呃,我也没找到更好更简单的办法,别慌,问题不大:

比如一个名为maze的整型二维数组,

for(int i=0;i<maze.length;i++){

            bundle.putIntArray("第"+(i+1)+"行",maze[i]);

}

接收方法类似,好吧,只能想到这个了,当然是选择原谅我了!

有必要提醒一下,不要通过Intent在Android基础组件之间传递大数据(binder transaction 缓存为1MB),可能导致OOM(嘿嘿,阿里巴巴android开发手册上强制规定了,嘻嘻)。


我觉得不能再写了,头发要紧。不过这几天心情不爽是真的,每天要应付各个老师无关紧要的作业,甚至需要花上三四个小时抄一份物理实验报告(我数据也是抄的),再加上要自学课程(貌似我大学这两年只听过一门课,真是对不起那么好的汇编老师)和感兴趣的课程(Python是真的好用)。身心憔悴,有些《长恨歌》里“鸡儿扶起娇无力”(我可能没有记错)。不说了,清明节也要加油呀!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值