android-学会页面之间的跳转与传值

1,Activity页面的跳转(默认是同一个包内的Activity)

Intent intent = new Intent(); //声明一个Intent对象
intent.setClass(MainActivity.this,SecondActivity.class);//将页面与下一个页面进行绑定,第一个参数为当前页面,第二个页面为下个页面,可以直接在Intent构造函数里填上
MainActivity.this.startActivity(intent);//跳转页面

2,Activity页面跳转时涉及的传值问题

第一种方法,直接附加数据到Intent对象上

//发送数据方
Intent intent = new Intent(MainActivity.this, SecondActivity.class); //声明一个Intent对象,构造函数参数为第一个页面与第二个页面
intent.putExtra("name", "诸葛亮");//给Intent对象绑定数据,类比HashMap 的键-值对形式
intent.putExtra("age", 50);
MainActivity.this.startActivity(intent);//跳转页面
//第二个页面,即接受数据方
Intent intent = getIntent();//声明一个对象,并获得跳转过来的Intent对象
String name = intent.getStringExtra("name");//从intent对象中获得数据
int age = intent.getIntExtra("age", 0);

第二种方法,为Intent对象绑定一个Buddle对象

//发送数据方
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
Bundle bundle = new Bundle();//声明一个Bundle对象,用来存放数据
bundle.putString("name", "乔峰");//为bundle添加数据
bundle.putInt("age", 40);
bundle.putFloat("weight", 70.4f);
intent.putExtras(bundle);//将这个bundle绑定在intent上
startActivity(intent);//跳转页面
//接受数据方
Intent intent = getIntent();//接受跳转过来的intent对象
Bundle bundle = intent.getExtras();从intent对象中获得bundle对象
String name = bundle.getString("name");//从bundle对象中提取数据
int age = bundle.getInt("age");
float weight=bundle.getFloat("weight");

3,Activity跳转完成并获得返回值

//第一个页面
Intent intent = new Intent(MainActivity.this,Main2Activity.class);//声明一个对象
startActivityForResult(intent,1);
//调用能获得返回值的方法跳转页面,第一参数为Intent对象,第二个对象为请求标识(一个int变量,自定义)
//在第一个页面里重写获得页面跳转返回值的方法
protected void onActivityResult(int requestCode, int resultCode, Intent data) {     super.onActivityResult(requestCode, resultCode, data);
if (requestCode==1 && resultCode==2)
String str=data.getStringExtra("data");//requestCode即是在第一个页面跳转时设置的请求标识,resultCode即是在二个页面里设置的返回值标识
 }
//第二页面
Intent intent = new Intent();
intent.putExtra("data",content);
setResult(2,intent);//设置返回值标识和Intent对象
finish();//关闭本页面

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值