使用Intent在活动之间穿梭(《第一行代码》读书笔记)

时间:2023-12-21 21:49:26

以下全是个人理解//瞎扯

其实活动理解理解起来就像一个个函数

那么Intent就是调用函数和参数传递

可以有无参,仅仅是调用

Intent intent = new Intent(A.this, B.class);

startActivity(intent);

由活动A调用活动B,无参,无返回值,当然B调用结束,要回到A。

可以有参数

A
---
Intent intent = new Intent(A.this, B.class); intent.putExtra( "这里是参数的键" , "这里是参数,本样例是字符串,也可以是其他的类型" ); // 传参 startActivity(intent);

B
---
Intent intent = getIntent(); String data = intent.getStringExtra("这里是参数的键");  //取出参数

由活动A调用活动B,无参,无返回值。

可以传参当然也可以返回参数

A
---
Intent intent = new Intent(A.this, B.class);
startActivity(intent, 1); //1是请求码,要求唯一 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {  // 接收返回的值
switch(requestCode) { //请求码是唯一的
case 1:
if (resultCode == RESULT_OK) {
String returnData = data.getStringExtra("data_return");
}
break;
dafault:
}
} B
---
Intent intent = getIntent();
intent.putExtra("data_return", "hey~");
setResult(RESULT_OK/RESULT_CANCELED, intent);

其实吧 可以把活动间通信想象成两地用信鸽传信,而Intent就是那个信鸽。

信鸽可以不带消息,就只是一个鸽子,也可以在腿上绑上信,放信鸽的人和收信鸽的利用鸽子放信的姿势当然是一样的啦。

但是可能有很多鸽子,所以如果鸽子传信回来,一定要看看,是不是自己的鸽子,于是给鸽子编个号,防止认错。