activity跳转与传值,主要是通过intent类,intent的作用是激活组件和附带数据。
intent可以激活activity,服务,广播三类组件。
本博文讲的是显示意图激活activity组件。所谓显示意图就是在activity的激活时,显示指出了需要激活的activity的名字。
一、activity跳转
方法一
intent intent = new intent(a.this, b.class);
startactivity(intent)
方法二
intent intent = new intent();
intent.setclass(a.this, b.class);
startactivity(intent);
实现从a跳转到b(a、b均继承自activity)
二、传递数据
activity a 传递数据
intent.putextra("name", "xy");
intent.putextra("age", 22);
bundle bundle = new bundle();
bundle.putstring("name", "xy");
bundle.putint("age", 22);
intent.putextras(bundle);
activity b 接收数据
// 获取参数1
intent intent = this.getintent();
string name = intent.getstringextra("name");
int age = intent.getintextra("age", 22); // 缺省值为22
// 获取参数2
bundle bundle = intent.getextras();
string name2 = bundle.getstring("name");
int age2 = bundle.getint("age", 22);
两种获取参数方式均可,并不是和传参1,2方法一一对应
三、activity返回值
跳转后前一个activity已经被destroy了。如若要返回并显示数据,就必须将前一个activity再次唤醒,同时调用某个方法来获取并显示数据。做法如下
1.从a页面跳转到b页面时不可使用startactivity()方法,而要使用startactivityforresult()方法
2.在a页面的activity中,需要重写onactivityresult(int requestcode, int resultcode, intent data)方法
activity a
activity b
四、总结
以上采用的意图intent均是显示意图。