📅  最后修改于: 2023-12-03 15:29:22.182000             🧑  作者: Mango
在 Android 上,你可以使用 Intent 发送参数。Intent 是一种用于在应用组件之间进行交互的一种基础结构。Intent 可以用于启动活动、启动服务、广播等。
通过 Intent,你可以传递一些额外的信息,这些信息可以是数据、操作或者其他任何类型的信息。在 Intent 中传递参数时需要指定参数名和其对应的值。
// 创建 Intent 对象
Intent intent = new Intent(context, SomeActivity.class);
// 添加参数到 Intent 对象中
intent.putExtra("param_name", "param_value");
// 启动活动并传递 Intent 对象
startActivity(intent);
可以通过 Intent.putExtra() 方法将基本数据类型的参数添加到 Intent 对象中,并指定参数名和其对应的值。在接收 Intent 对象并通过 Intent.getXXXExtra() 方法获取参数时,需要指定参数名和默认值。
// 添加整型参数到 Intent 对象中
intent.putExtra("int_param", 123);
// 添加字符串参数到 Intent 对象中
intent.putExtra("str_param", "hello");
// 获取整型参数
int intParam = intent.getIntExtra("int_param", 0);
// 获取字符串参数
String strParam = intent.getStringExtra("str_param");
如果需要传递自定义对象类型的参数,需要使该对象实现 Parcelable 接口或者 Serializable 接口。Parcelable 接口比 Serializable 接口更高效,因此推荐使用 Parcelable 接口。
// 自定义对象实现 Parcelable 接口
public class MyObject implements Parcelable {
private int value;
// 实现 Parcelable 接口的方法
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(value);
}
public static final Parcelable.Creator<MyObject> CREATOR = new Parcelable.Creator<MyObject>() {
@Override
public MyObject createFromParcel(Parcel source) {
return new MyObject(source);
}
@Override
public MyObject[] newArray(int size) {
return new MyObject[size];
}
};
private MyObject(Parcel in) {
value = in.readInt();
}
}
// 添加自定义对象参数到 Intent 对象中
MyObject obj = new MyObject();
intent.putExtra("obj_param", obj);
// 获取自定义对象参数
MyObject objParam = intent.getParcelableExtra("obj_param");
通过 Intent 发送参数是 Android 中组件之间交互的重要方式,可以通过 Intent 传递基本数据类型和自定义对象类型的参数。要注意在传递自定义对象类型的参数时,需要使该对象实现 Parcelable 接口或者 Serializable 接口。