画面遷移時に、どうしてもデータを保存しているクラスごと渡したかったので、どうやってするかをメモ
まず、データ保存したいくらいを用意する。下のは「九九おぼえちゃお」の各問題(1X1,1X2・・・)の情報を格納するクラスです。
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; } }
5行目のところでシリアライズインターフェイスを実装する
どうやら、変数もすべてシリアライズ可能な変数でなければならない。
9行目は自動で、やってくれる。どうやら受け渡しの時に、データのバージョンを保持するのが目的らしい。
であとは、
遷移元
QuesContents QC =QuesContents("1×1","1","4",true,"dan1_1_ques","dan1_1_ans"); intent.putExtra("exam_data",QC); startActivity(intent);
遷移先
QuesContents QC = (QuesContents)getIntent().getSerializableExtra("exam_data");
で、あとは煮るなり焼くなり・・・