画面遷移時に、どうしてもデータを保存しているクラスごと渡したかったので、どうやってするかをメモ
まず、データ保存したいくらいを用意する。下のは「九九おぼえちゃお」の各問題(1X1,1X2・・・)の情報を格納するクラスです。
[js highlight=”5,9″]
package jp.co.kuku;
import java.io.Serializable;
public class QuesContents implements Serializable{
/**
*
*/
private static final long serialVersionUID = -6576047754467174033L;
public String question = "";
public String left_ans = "";
public String right_ans = "";
public String ques_voice = "";
public String ans_voice = "";
public boolean ans_flag;
protected QuesContents(String _question,String _left_ans,String _right_ans,boolean _ans_flag,String _ques_voice,String _ans_voice) {
this.question = _question;
this.left_ans = _left_ans;
this.right_ans = _right_ans;
this.ans_flag = _ans_flag;
this.ques_voice = _ques_voice;
this.ans_voice = _ans_voice;
}
}
[/js]
5行目のところでシリアライズインターフェイスを実装する
どうやら、変数もすべてシリアライズ可能な変数でなければならない。
9行目は自動で、やってくれる。どうやら受け渡しの時に、データのバージョンを保持するのが目的らしい。
であとは、
遷移元
[js]
QuesContents QC =QuesContents("1×1","1","4",true,"dan1_1_ques","dan1_1_ans");
intent.putExtra("exam_data",QC);
startActivity(intent);
[/js]
遷移先
[js]
QuesContents QC = (QuesContents)getIntent().getSerializableExtra("exam_data");
[/js]
で、あとは煮るなり焼くなり・・・