Parcelable
Androidで独自クラスでデータ管理する方法見つけた~
ドキュメント豊富なんであんまり説明はしませんが…
とりあえず今作ってるアプリでサンプルコードとします。
あとは外部クラスでtxtとかにデータセーブしてごにょごにょって感じかな。
これ知ったことで大分このアプリも実現可能になってきた感じ。
あ、詳細はまぁ一応学校の宿題の一貫として作ってるので作り終えてから発表します。
余裕があったらアプリ甲子園に応募するかもしれない
追記:クラス名のせいで表示バグってるかも?
ドキュメント豊富なんであんまり説明はしませんが…
とりあえず今作ってるアプリでサンプルコードとします。
package jp.touyoubuntu.materica;これがとりあえずC++の構造体的な役割をもつ、んで
import android.os.Parcel;
import android.os.Parcelable;
public class MatData implements Parcelable {
private String name;
private int amt;
private boolean[] iscons;
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flag) {
out.writeString(name);
out.writeInt(amt);
out.writeBooleanArray(iscons);
}
public static final Parcelable.CreatorCREATOR
= new Parcelable.Creator() {
public MatData createFromParcel(Parcel in) {
return new MatData(in);
}
public MatData[] newArray(int size) {
return new MatData[size];
}
};
private MatData(Parcel in) {
name = in.readString();
amt = in.readInt();
in.readBooleanArray(iscons);
}
public MatData(String name, int amt, boolean[] iscons) {
this.name = name;
this.amt = amt;
this.iscons = iscons;
}
}
package jp.touyoubuntu.materica;これで上記のクラスのデータを配列で管理します。
import java.util.ArrayList;
import android.os.Parcel;
import android.os.Parcelable;
public class AllMatData implements Parcelable {
private ArrayListmatList;
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flag) {
out.writeTypedList(matList);
}
public static final Parcelable.CreatorCREATOR
= new Parcelable.Creator() {
public AllMatData createFromParcel(Parcel in) {
return new AllMatData(in);
}
public AllMatData[] newArray(int size) {
return new AllMatData[size];
}
};
private AllMatData(Parcel in) {
matList = in.createTypedArrayList(MatData.CREATOR);
}
public AllMatData(ArrayListmatList) {
this.matList = matList;
}
}
あとは外部クラスでtxtとかにデータセーブしてごにょごにょって感じかな。
これ知ったことで大分このアプリも実現可能になってきた感じ。
あ、詳細はまぁ一応学校の宿題の一貫として作ってるので作り終えてから発表します。
余裕があったらアプリ甲子園に応募するかもしれない
追記:クラス名のせいで表示バグってるかも?