隐式意图和显式意图(重点)
隐式意图:
在开启目标activity时,不需要直接指定目标activity的名称,通过指定一组动作、数据、类型等属性,让系统从清单文件中匹配指定的acitivity来开启activity。

模版代码:

//创建一个开启第二个界面的意图
Intent intent = new Intent();
//设置目标activity的动作
intent.setAction("com.itheima..multiview.SECONDSHOW");
//设置目标activity的数据
intent.setData(Uri.parse("itheima://110"));
//设置目标activity的类型
intent.addCategory("android.intent.category.DEFAULT");

应用场景:开启其他应用程序中的组件时使用隐式意图;

显式意图:在开启目标activity时需要直接指定目标activity名称;

模版代码:

//创建一个显示意图开启第二个界面
Intent intent = new Intent(this, SecondActivity.class);
//开启一个新的界面
startActivity(intent);

应用场景:开启应用程序内部的activity;

##05_意图传递数据(重点)

从第一个界面传递一些数据给第二个界面,在第二个界面上显示出来;

intent可以传递的数据类型:

1.八大基本类型及其数组
2.parcelable
3.Serializable
4.Bundle
5.Intent
putExtra()
putExtras()

代码:

传递数据:

//创建一个显示意图开启第二个界面
Intent intent = new Intent(this, SecondActivity.class);

//把需要提交的数据封装到意图对象中
// intent.putExtra("name", "itheima");
// intent.putExtra("age", 4);
//

Bundle b = new Bundle();

b.putString("name", "itheima");
b.putInt("age", 4);

intent.putExtra("info", b);

//开启一个新的界面
startActivity(intent);

接收数据:


Intent intent = getIntent();
//
// String name = intent.getStringExtra("name");
// int age = intent.getIntExtra("age", 0);

Bundle b = intent.getBundleExtra("info");

String name = b.getString("name");

int age = b.getInt("age");
tv.setText("name:"+name+";age:"+age);