我正在尝试从一个Activity
发送客户类的对象并将其显示在另一个Activity
。
客户类的代码:
public class Customer {
private String firstName, lastName, Address;
int Age;
public Customer(String fname, String lname, int age, String address) {
firstName = fname;
lastName = lname;
Age = age;
Address = address;
}
public String printValues() {
String data = null;
data = "First Name :" + firstName + " Last Name :" + lastName
+ " Age : " + Age + " Address : " + Address;
return data;
}
}
我想将其对象从一个Activity
发送到另一个,然后在另一个Activity
上显示数据。
我该如何实现?
一种选择是让您的自定义类实现Serializable
接口,然后您可以使用Intent#putExtra()
方法的putExtra(Serializable..)
变体在Intent#putExtra()
传递对象实例。
伪代码 :
//To pass:
intent.putExtra("MyClass", obj);
// To retrieve object in second Activity
getIntent().getSerializableExtra("MyClass");
注意:确保主自定义类的每个嵌套类都实现了 Serializable 接口,以避免任何序列化异常。例如:
class MainClass implements Serializable {
public MainClass() {}
public static class ChildClass implements Serializable {
public ChildClass() {}
}
}
使用 Serializable 实现您的课程。让我们假设这是您的实体类:
import java.io.Serializable;
@SuppressWarnings("serial") //With this annotation we are going to hide compiler warnings
public class Deneme implements Serializable {
public Deneme(double id, String name) {
this.id = id;
this.name = name;
}
public double getId() {
return id;
}
public void setId(double id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
private double id;
private String name;
}
我们正在将名为dene
的对象从 X 活动发送到 Y 活动。 X 活动中的某个位置;
Deneme dene = new Deneme(4,"Mustafa");
Intent i = new Intent(this, Y.class);
i.putExtra("sampleObject", dene);
startActivity(i);
在 Y 活动中,我们正在获取对象。
Intent i = getIntent();
Deneme dene = (Deneme)i.getSerializableExtra("sampleObject");
而已。
您可以使用此站点为您的课程生成 Parcelable 代码。