我想讀字符串列表,我不斷有以下錯誤:的Android Parcelable寫入/讀取字符串列表空對象引用
具有以下Parcelable類:
import java.util.List;
import android.os.Parcel;
import android.os.Parcelable;
public class ActivePolicies implements Parcelable {
private List<String> activePolicies;
public ActivePolicies(List<String> activePolicies) {
this.activePolicies = activePolicies;
}
public List<String> getActivePolicies(){
return activePolicies;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeStringList(activePolicies);
}
public static final Parcelable.Creator<ActivePolicies> CREATOR = new Parcelable.Creator<ActivePolicies>() {
@Override
public ActivePolicies createFromParcel(Parcel in) {
try {
return new ActivePolicies(in.createStringArrayList());
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public ActivePolicies[] newArray(int size) {
return new ActivePolicies[size];
}
};
}
它不斷給我例外createFromParcel()
,但我不明白爲什麼。
它似乎是一個簡單的parcelable,但是當我從Parcel類的readStringList()
調試時,該列表爲空。
但是,當我在createStringArrayList()
中評估它返回之前的值時,該列表與預期值一起出現。
你說得對。我想構建這個對象。即使使用你所說的,它仍然不能工作。我正在使用你所說的,併爲列表添加了一個設置方法。所以我可以給它一個價值。但仍然爲空... – fcarvalho
不知道該告訴你什麼,但你確實需要'readStringList'在某個點 –
一個應用程序正在調用另一個返回ActivePolicies的遠程方法。這個遠程應用程序具有列表值,所以我返回新的ActivePolicies(列表)。儘管在readStringList被調用時,它仍然與null混淆。 – fcarvalho