私の知る限り、シリアル化可能な配列をバンドルに入れる方法はありません。ここでは、パーセルを使用するソリューションを使用します
クラスをこれに変更します
import android.os.Parcel;
import android.os.Parcelable;
public class persona implements Parcelable {
int age;
String name;
public static final Parcelable.Creator<persona> CREATOR = new Creator<persona>() {
@Override
public persona[] newArray(int size) {
// TODO Auto-generated method stub
return new persona[size];
}
@Override
public persona createFromParcel(Parcel source) {
// TODO Auto-generated method stub
return new persona(source);
}
};
public persona(Parcel in) {
super();
age = in.readInt();
name = in.readString();
}
public persona() {
super();
// TODO Auto-generated constructor stub
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(age);
dest.writeString(name);
}
}
次に、このように配列を送信できます
Bundle b = new Bundle();
b.putParcelableArray("persona", p);
Androidでは、Serializableの代わりにParcelableを使用する方が効率的です