Android onsavedinstancestate不';似乎不支持双数组列表我的选项是什么?

Android onsavedinstancestate不';似乎不支持双数组列表我的选项是什么?,android,Android,android中的OnSavedInstanceState似乎无法保存双数组列表。我在想最好的方法是把双数组列表转换成双数组,我该怎么做呢 有比将双数组列表转换为双数组更好的选项吗 /* Storage for parsed JSON data */ private List<String> mPosterPaths = new ArrayList<>(); private List<String> mTitleList = new ArrayList<

android中的OnSavedInstanceState似乎无法保存双数组列表。我在想最好的方法是把双数组列表转换成双数组,我该怎么做呢

有比将双数组列表转换为双数组更好的选项吗

/* Storage for parsed JSON data */
private List<String> mPosterPaths = new ArrayList<>();
private List<String> mTitleList = new ArrayList<>();
private List<String> mDescriptionList = new ArrayList<>();
private List<Double> mRatingList = new ArrayList<>();
private List<String> mDateList = new ArrayList<>();
private List<Integer> mIdList = new ArrayList<>();


@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    Double[] rating = mRatingList.toArray(new Double[0]);
    outState.putString("SavedState", mSortType);
    outState.putStringArrayList("PosterPath", (ArrayList<String>) mPosterPaths);
    outState.putStringArrayList("MovieTitle", (ArrayList<String>) mTitleList);
    outState.putIntegerArrayList("MovieID", (ArrayList<Integer>) mIdList);
    outState.putStringArrayList("Plot", (ArrayList<String>) mDescriptionList);
    outState.putDoubleArray("Rating",  mRatingList);
    outState.putStringArrayList("Release Date", (ArrayList<String>) mDateList);



}
/*已解析JSON数据的存储*/
私有列表mposterpath=new ArrayList();
private List mTitleList=new ArrayList();
私有列表mdDescriptionList=新建ArrayList();
private List mRatingList=new ArrayList();
私有列表mDateList=new ArrayList();
private List mIdList=new ArrayList();
@凌驾
SaveInstanceState上受保护的无效(束超出状态){
super.onSaveInstanceState(超出状态);
Double[]额定值=mRatingList.toArray(新的Double[0]);
outState.putString(“SavedState”,mSortType);
putStringArrayList(“PosterPath”,(ArrayList)mposterpath);
outState.putStringArrayList(“MovieTitle”,(ArrayList)MTITElist);
outState.putIntegerArrayList(“MovieID”,(ArrayList)中间列表);
outState.putStringArrayList(“Plot”,(ArrayList)MDDescriptionList);
超出状态。putDoubleArray(“额定值”,mRatingList);
outState.putStringArrayList(“发布日期”,(ArrayList)MDatalist);
}

您可以尝试将评级
列表
转换为
数组

double ratings[] = new double[mRatingList.size()];
for (int i = 0; i < mRatingList.size(); i++) {
    ratings[i] = mRatingList.get(i);
}
savedInstanceState.putDoubleArray("Rating", ratings);
double ratings[]=新的double[mRatingList.size()];
对于(int i=0;i
在恢复时:

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    double[] ratings = savedInstanceState.getDoubleArray("Rating");
    List<Double> ratingList = new ArrayList<>();
    for (double rating : ratings) {
        ratingList.add(rating);
    }
    // ...
}
@覆盖
RestoreInstanceState上的受保护无效(Bundle savedInstanceState){
double[]ratings=savedInstanceState.getDoubleArray(“ratings”);
List ratingList=新建ArrayList();
用于(双重评级:评级){
评级列表。添加(评级);
}
// ...
}

请发布代码,还请注意,当您将数据存储在捆绑包中时,它应该是可打包的或可序列化的。我已经包含了我的代码,希望它能帮上忙。除非我遗漏了什么,否则这对我不起作用。这是Log.d打印出来的。D/doubleconvert:arrayList[6.6,5.6,8.3,7.6,6.0,8.3,7.5,6.2,5.3,7.3,6.9,7.0,6.6,6.9,5.5,6.5,6.4,4.1,6.1,6.9]2018-11-12 21:07:49.064 23845-23845/com.shawn.nichol.moviesstage2 D/doubleconvert:array[D@81ead05As您提到过,Bundle不支持double列表。但它支持double数组,所以您可以尝试将列表转换为数组并将其放入Bundle中,除非我误解了您的意思?@更快速的是,它的
double
不是
double
,如果这是您的意思,否则其他选项将转换这些我刚刚发现这两个人在想这个问题,但我仍然从日志中得到了这个响应[D@a983e61.Were您试图通过
array.toString()
打印吗?这只会给您一个哈希值。如果要打印可读字符串,请尝试
array.toString(array)