クラスのオブジェクトをActivity間でやり取りする方法です。
対象のクラスにSerializableをimplementすることで実現できます。
ここでは、SerializableをimplementしたクラスPersonを
Activity間で値渡ししたいと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import java.io.Serializable; public class Person implements Serializable{ public static final String SERIAL_NAME = "Person"; private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } |
次にActivity間での値渡しです。
1 2 3 4 5 6 7 |
// クラス Person person = new Person(); person.setName("YOU"); person.setAge(20); Intent intent = new Intent(this, MainActivity2.class); intent.putExtra(Person.SERIAL_NAME,person); startActivity(intent); |
Intentに値を突っ込む時は、putExtraを利用します。
ここは、intやbooleanなどと同じです。
次に遷移先のActivityです。
1 2 3 4 |
Intent intent = getIntent(); if(intent != null){ person = (Person)intent.getSerializableExtra(Person.SERIAL_NAME); } |
Personの値を受け取るのに、
getSerializableExtra関数
を使用します。
これで、Person classの値を受け取ることができました。