この記事では、前回の記事で取り込んだエクセルのデータをプログラミング時に扱いやすくするコードについて解説します。

手順としては、

  1. 1行分の情報をまとめておくクラスをつくる
  2. ↑のクラスをまとめるクラス配列をコンストラクタで生成する
  3. クラス配列から欲しいデータを出し入れ

のようにやっていきます。

1.1行分の情報をまとめておくModelCharaクラスを作る

ナンバー、名前、年齢、性別、備考をまとめて1人分とするクラスをつくります。

ここでの変数を増やすことで、さらに多くの情報を取り込むことも可能です。

[ModelChara.java]

public class ModelChara {
	int		id		= 0;
	String	name	= "";
	int		age		= 0;
	boolean	sex		= true;
	String	memo	= "";

	public ModelChara(int id, String name, int age, boolean sex, String memo) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.memo = memo;
	}

	public int getID(){ return id; }
	public String getName(){ return name; }
	public int getAge(){ return age; }
	public boolean getSex(){ return sex; }
	public String getMemo(){ return memo; }
}

クラスを生成する際にコンストラクタで変数を格納していきます。

下の方のメソッドは、実際にデータを取り出す時に使います。

2.クラス配列をコンストラクタで生成する

すでに前回の記事で画像が出ていますが、1.のクラスを継承したクラス配列を生成します。

このファイルのコンストラクタで、エクセルから変換したデータを取り込むことになります。

ですので、エクセルで関数を使ってセルの内容をまとめるときには、このような完成形をイメージしてから結合しないといけません。

[CharaData.java]

public class CharaData {
	private ArrayList<ModelChara> chara_data = new ArrayList<ModelChara>();

	//コンストラクタにて情報を格納
	public CharaData() {
		chara_data.add(new ModelChara(1, "波平", 54, true, "1本だけ"));
		chara_data.add(new ModelChara(2, "フネ", 50, false, ""));
		chara_data.add(new ModelChara(3, "マスオ", 28, true, "早稲田大学商学部"));
		chara_data.add(new ModelChara(4, "サザエ", 24, false, "老けすぎではないか"));
		chara_data.add(new ModelChara(5, "カツオ", 11, true, "発想(企画力)\n話術(営業力)\n体育会系(野球ばっかしてる)\n将来は良い営業マン"));
		chara_data.add(new ModelChara(6, "ワカメ", 9, false, "パンツ"));
		chara_data.add(new ModelChara(7, "タラヲ", 3, true, ""));
		chara_data.add(new ModelChara(8, "タマ", 9, true, "メスだと思ってた……"));
	}

	public ArrayList<ModelChara> getData() {
		return this.chara_data;
	}
}

こちらのファイルでも、1.と同じく、getData()メソッドは、クラス配列を取り出すのに必要なものです。

3.Activitiyでクラス配列から欲しいデータを出し入れ

さて、Activityで実際にデータをやりとりするときは下記のようにします。

[SampleActivity.java]

<pre>//キャラデータ読み込み
CharaData class_chara = new CharaData();
ArrayList<ModelChara> chara_data = class_chara.getData();

//マスオの年齢を取得したいとき
int masuo_age = chara_data.get(2).getAge();
//タマの名前を取得したいとき
String cat_name = chara_data.get(7).getName();

1.と2.の手順は一件面倒なように思えますが、複数のActivityで何度も繰り返しデータを出し入れする場合には、ファイルを分けて管理するのが簡単です!

実際に使うときには、クラス配列なのでchara_dataをListViewに読み込ませていたりします。クリックした行の番号をchara_data.get(○○)の添え字として渡したり、とか。

エンジニアではない人とドキュメントを受け渡しすると、エクセルが使われることが非常に多いので、こういうやり方を覚えておくと便利ですよ!

Post Navigation