私は顧客クラスのオブジェクトを 1 つから送信し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
。
どうすればそれを達成できるでしょうか?
ベストアンサー1
1 つのオプションとしては、カスタム クラスにインターフェースを実装させ、メソッドのSerializable
バリアントを使用してインテント エクストラでオブジェクト インスタンスを渡すことが考えられます。putExtra(Serializable..)
Intent#putExtra()
実際のコード:
カスタムモデル/オブジェクトクラスの場合:
public class YourClass implements Serializable {
カスタム モデル/クラスを使用する他のクラス:
//To pass:
intent.putExtra("KEY_NAME", myObject);
myObject は「YourClass」型です。別のアクティビティから取得するには、getSerializableExtra を使用して、同じキー名を使用してオブジェクトを取得します。また、YourClass への型キャストが必要です。
// To retrieve object in second Activity
myObject = (YourClass) getIntent().getSerializableExtra("KEY_NAME");
注: シリアル化例外を回避するために、メインのカスタム クラスのネストされた各クラスに Serializable インターフェースが実装されていることを確認してください。例:
class MainClass implements Serializable {
public MainClass() {}
public static class ChildClass implements Serializable {
public ChildClass() {}
}
}