[Android]画面遷移時にIntentを使ってデータを渡す(シリアライズ)

画面遷移時に、どうしてもデータを保存しているクラスごと渡したかったので、どうやってするかをメモ

まず、データ保存したいくらいを用意する。下のは「九九おぼえちゃお」の各問題(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");

で、あとは煮るなり焼くなり・・・

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です