2016-10-22 51 views
0

我的分段中存在方向改變和數據丟失的問題。所以基本上我有一個類的parcelable類和數組,但由於某些原因 它給了我一個錯誤:enter image description here可分段數組saveState錯誤參數

包裹類:

public final class WeatherData implements Parcelable { 

public static final String CELSIUS_PLACEHOLDER = " °C"; 
public static final String PASCAL_PLACEHOLDER = " hPa"; 
public static final String HUMIDITY_PERCENT_PLACEHOLDER = " %"; 

public final String tempMin; 
public final String tempMax; 
public final String cityName; 
public final String description; 
public final String humidity; 
public final String pressure; 
public final String icon; 
public final String date; 

public WeatherData(final String tempMin, final String tempMax, final String cityName, final String description, final String humidity, final String pressure, 
        final String icon, final String date) { 
    this.tempMin = tempMin; 
    this.tempMax = tempMax; 
    this.cityName = cityName; 
    this.description = description; 
    this.humidity = humidity; 
    this.pressure = pressure; 
    this.icon = icon; 
    this.date = date; 
} 


@Override 
public int describeContents() { 
    return 0; 
} 

@Override 
public void writeToParcel(final Parcel dest, final int flags) { 
    dest.writeString(this.tempMin); 
    dest.writeString(this.tempMax); 
    dest.writeString(this.cityName); 
    dest.writeString(this.description); 
    dest.writeString(this.humidity); 
    dest.writeString(this.pressure); 
    dest.writeString(this.icon); 
} 

public WeatherData(final Parcel in) { 
    this.tempMin = in.readString(); 
    this.tempMax = in.readString(); 
    this.cityName = in.readString(); 
    this.description = in.readString(); 
    this.humidity = in.readString(); 
    this.pressure = in.readString(); 
    this.icon = in.readString(); 
    this.date = in.readString(); 
} 

public static final Parcelable.Creator<WeatherData> CREATOR = new Parcelable.Creator<WeatherData>() { 

    @Override 
    public final WeatherData createFromParcel(Parcel source) { 
     return new WeatherData(source); 
    } 

    @Override 
    public final WeatherData[] newArray(int size) { 
     return new WeatherData[size]; 
    } 
}; 

在我的片段,我把名單爲:

final List<WeatherData> weatherDataList = new ArrayList<>(); 

回答

0

,而不是實施Parcelable,extend它WeatherData類

0

我只是把 android:configChanges =「keyboardHidden | orientation | screenSize」在我的清單文件中用於活動,它的工作原理沒有所有的龐然大物:)