使用intent可以实现在活动之间的穿梭,实现信息的传递,是各组件之间进行交互的重要方式
intent //n. 意图;目的;含义
Intent启动活动
Intent intent =new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
向下一个活动传递数据
putExtra() Extra //n. 额外的事物;
Intent intent =new Intent(MainActivity.this,SecondActivity.class);
intent.putExtra("aaaa",1);//第一个参数是键用于后面取值,第二个参数是数据
startActivity(intent);
在新活动中获取数据
getIntent();
Intent intent=getIntent();
int aaa=intent.getIntExtra("aaaa");
返回数据给上一个活动
启动活动时使用startActivityForResult(),第一个参数是intent,第二个参数是请求码,用于判断数据来源
Activity 1
Intent intent =new Intent(MainActivity.this,SecondActivity.class);
startActivityForResult(intent,1);
Activity 2 返回
扫描二维码关注公众号,回复:
10301819 查看本文章
Intent intent=new Intent();
int aaa=intent.getIntExtra("aaaa");
setResult(RESULT_OK,intent);//RESULT_OK表式正确返回
上一个活动得到数据
//三个参数,请求码,结果(上面的RESULT_OK),传递的数据
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case 1:
if (resultCode==RESULT_OK){
Log.d("TAG", "onActivityResult: "+data.getIntExtra("aaaa",2));
//getIntExtra("aaaa",2)),第一个参数是键,第二个参数是默认值,如果没有,或得不到的话,就会使用默认值
}
}
}