0
私はこの質問の例に従って設定クラスCurrentGame
を、している:しかし、私は小包コンストラクタにintArray scoresRnd
を追加する方法がわからないAndroid Class Parcelable with ArrayListAndroid:ParcelableでIntArraysを使用するにはどうすればよいですか?私のアプリで
。
私はこのライン、例えば、それは赤い下線ます追加します。
this.scoresRnd = parcel.readArray(null);
を...と私は、このエラーメッセージ」互換性のないタイプを取得必須:INT []が見つかりました:。java.langで.Object [] "。手伝ってくれませんか?ありがとう! (また、私のコード内の他のミスを指摘してください)
public class CurrentGame implements Parcelable{
private int rnd;
private int[] scoresRnd;
private ArrayList<int[]> scoreList;
public CurrentGame(){
super();
this.rnd = 0;
this.scoresRnd = new int[]{0,0,0,0};
this.scoreList = new ArrayList<>();
}
public CurrentGame (Parcel parcel){
this.scoreList = parcel.readArrayList(null);
this.rnd = parcel.readInt();
//WHAT DO I PUT HERE FOR THE INTARRAY???
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
// TODO Auto-generated method stub
parcel.writeList(this.scoreList);
parcel.writeInt(this.rnd);
}
public static final Creator<CurrentGame> CREATOR = new Creator<CurrentGame>() {
@Override
public CurrentGame createFromParcel(Parcel parcel) {
// TODO Auto-generated method stub
return new CurrentGame(parcel);
}
@Override
public CurrentGame[] newArray(int i) {
// TODO Auto-generated method stub
return new CurrentGame[i];
}
};
public void expandList(int[] scoresRnd){
scoreList.add(scoresRnd);
}
public void setRound(int rnd){
this.rnd=rnd;
}
public int getRound(){
return rnd;
}
public ArrayList<int[]> getScoreList(){
return scoreList;
}
}
感謝を試してみてください、私はそれを試してみましょう!しかし、既存のコードをあまり変更しない方法もありますか?それとも私のコードが間違ったアプローチですか? – Kubi
'dest.writeIntArray(this.scoresRnd);'はあなたが必要としていたものです。それを自動生成するために必要な場合は、Android Studioのプラグインがたくさんあります。だから、あなたは 'Parcelable'を気にする必要はありません。 – Sunny
Okだから、私は 'dest.writeIntArray(this.scoresRnd);' 'writeToParcel'メソッドに追加します。しかし私はParcelコンストラクタに何を追加しますか? – Kubi