📅  最后修改于: 2023-12-03 14:51:14.309000             🧑  作者: Mango
在 Android 中,有多种方式可以在不同组件之间传递数据。以下是一些常见的方式:
示例代码:
// 发送数据
Intent intent = new Intent(this, TargetActivity.class);
intent.putExtra("key", "value");
startActivity(intent);
// 接收数据
String data = getIntent().getStringExtra("key");
示例代码:
// 发送数据
Intent intent = new Intent(this, TargetActivity.class);
Bundle bundle = new Bundle();
bundle.putString("key", "value");
intent.putExtras(bundle);
startActivity(intent);
// 接收数据
Bundle bundle = getIntent().getExtras();
String data = bundle.getString("key");
示例代码:
// 实现 Parcelable 接口
public class MyObject implements Parcelable {
// ...
// 内容省略
// 实现 Parcelable 方法
@Override
public void writeToParcel(Parcel dest, int flags) {
// 写入数据
dest.writeString(this.name);
// ...
}
public static final Parcelable.Creator<MyObject> CREATOR = new Parcelable.Creator<MyObject>() {
@Override
public MyObject createFromParcel(Parcel source) {
// 读取数据
return new MyObject(source.readString(), ...);
}
@Override
public MyObject[] newArray(int size) {
return new MyObject[size];
}
};
}
// 发送数据
Intent intent = new Intent(this, TargetActivity.class);
MyObject myObject = new MyObject("name", ...);
intent.putExtra("key", myObject);
startActivity(intent);
// 接收数据
MyObject myObject = getIntent().getParcelableExtra("key");
示例代码:
// 实现 Serializable 接口
public class MyObject implements Serializable {
// ...
// 内容省略
}
// 发送数据
Intent intent = new Intent(this, TargetActivity.class);
MyObject myObject = new MyObject("name", ...);
intent.putExtra("key", myObject);
startActivity(intent);
// 接收数据
MyObject myObject = (MyObject) getIntent().getSerializableExtra("key");
以上是常见的几种在 Android 中传递数据的方式,根据具体的需求可以选择合适的方式来实现。