我擁有從android.preference.MultiSelectListPreference
複製的完整代碼。我面臨的怪異編譯錯誤以下內部類:Android包裹類錯誤
1號線是原代碼,我已經添加#行2
對於2號線
類型不匹配:不能轉換無效爲String []
和 對於未註釋的行#1
個在該行 多個標記 - 類型不匹配:不能從空隙轉換爲字符串[] - 該方法readStringArray(字符串[])中的類型包裹不適用於()的參數
private static class SavedState extends BaseSavedState {
Set<String> values;
public SavedState(Parcel source) {
super(source);
values = new HashSet<String>();
//String[] strings = source.readStringArray(); //Line #1
String[] strings = source.readStringArray(values.toArray(new String[0])); //Line #2
final int stringCount = strings.length;
for (int i = 0; i < stringCount; i++) {
values.add(strings[i]);
}
}
public SavedState(Parcelable superState) {
super(superState);
}
@Override
public void writeToParcel(Parcel dest, int flags) {
super.writeToParcel(dest, flags);
dest.writeStringArray(values.toArray(new String[0]));
}
public static final Parcelable.Creator<SavedState> CREATOR =
new Parcelable.Creator<SavedState>() {
public SavedState createFromParcel(Parcel in) {
return new SavedState(in);
}
public SavedState[] newArray(int size) {
return new SavedState[size];
}
};
}
我非常喜歡這些編譯錯誤!我實際上正在編寫自己的多選擇偏好,但面對上面提到的唯一的錯誤,並且沒有解決它的想法。
感謝任何幫助。
閱讀文檔... http://developer.android.com/reference/android/os/Parcel.html#readStringArray(java.lang.String[])如果您仍然不會讀取它.. 。 然後再次 ... – Selvin 2013-05-10 12:25:59