一、页面跳转传参方式一
跳转的过程如何传参:也就是页面之间如何传递参数,有点像函数调用如何传参,页面跳转也要传参。
复制一个工程
你要跳转,(现在的代码如下),intent 既然能设置跳转到哪个页面,当然也能设置参数
这是一个方法的重载
现在的代码
第一个可以改成 “MyData”
第二个可以改成 "冰糖李子帅"
intent.putExtra("MyData", "冰糖李子帅");
设置完以后,调用 startActivity(intent); 的时候 就会传参
那我的SecondActivity.java 如何获取呢?
第二个页面启动的时候,我们搞一个Intent来获取 Intent i;
如果直接i.get(); 获取的话。你会发现他(i)是一个空的。
我们没有new 它( Intent i;),也没有指向
这个时候你如果new 它(Intent i;) Intent i = new Intent(); 这个就不是你想要的了
怎么办呢? Intent i = this.getIntent();
把 SecondActivity 里面带有的 Intent 给他获取出来
然后i.getStringExtra(name);
因为第一个页面传给他的是字符 "冰糖李子帅" 第20行
"MyData"是个键 “冰糖李子帅”是个值
你要在键里面获取出值
那么值是什么呢?
然后我们定义一个私有的 private String data;
让 data = i.getStringExtra("myData");
运行一下,我看不到任何东西,是传递失败还是说这边的日志不太容易找到你想看的内容呢?
都不好说
这时候我们可以用Toast.makeText
补充一下
运行一下
收到的数据是null
发现是第19行写错了,修改完以后运行
同样的,你要给第三个页面传下去,它也是一样的
现在整体的代码
运行一下
二、页面跳转传参方式二
当数据比较多的时候,我们需要借助一个对象,要借助一个类Bundle
先复制工程
需要 用到了 Bundle bundle = new Bundle();
我们可以让bundle 里面put。。。 bundle.putString(key, value)
补充成 bundle.putString("MyData", "冰糖李子1");
还可以继续放 bundle.putInt("ID", 80808080);
intent有个 API 能把 bundle 放进来 intent.putExtras(extras)
补充成 ·intent.putExtras(bundle);
这样我们跳转的时候,就有一个整型数,一个字符串
我们SecondActivity.java拿到手以后,去搞一个bundle
i.getExtras(); 他返回的肯定是bundle, Bundle b = i.getExtras();
运行一下
完整的代码
运行结果
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)