Intent的概念:
Intent并不是Android应用中的组件,它是应用内传输数据的载体,Android需要连接不同组件的时候就可以通过Intent来实现。比如通过Intent启动一个Activity、一个Service组件、还可以发送一条广播消息来触发系统中BroadcastReceiver。
Intent的作用:
Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成Android各个组件之间的通讯。
Intent的构造函数:
公共构造函数:
1、Intent() 空构造函数
2、Intent(Intent o) 拷贝构造函数
3、Intent(String action) 指定action类型的构造函数
4、Intent(String action, Uri uri) 指定Action类型和Uri的构造函数,URI主要是结合程序之间的数据共享ContentProvider
5、Intent(Context packageContext, Class<?> cls) 传入组件的构造函数,也就是上文提到的
6、Intent(String action, Uri uri, Context packageContext, Class<?> cls) 前两种结合体
Intent有六种构造函数,3、4、5是最常用的,并不是其他没用!
Intent(String action, Uri uri) 的action就是对应在AndroidMainfest.xml中的action节点的name属性值。在Intent类中定义了很多的Action和Category常量。
示例代码:
将Activity6的值传到Activity7中
Activity6:
switch (v.getId()){
case R.id.input_register_btn:
Intent intent = new Intent(Main6Activity.this,Main7Activity.class);
String name_et=username_et.getText().toString();
String psw_et=pwd_et.getText().toString();
intent.putExtra("name",name_et);
intent.putExtra("password",psw_et);
this.startActivity(intent);
break;
Activity7:
setContentView(R.layout.activity_main7);
username_tv= findViewById(R.id.username_tv);
password_tv= findViewById(R.id.password_tv);
Intent intent=getIntent();
String name=intent.getStringExtra("name");
String pwd=intent.getStringExtra("password");
username_tv.setText(name);
password_tv.setText(pwd);
}
}