0

我想知道如何能够从我的共享首选项中获取字符串(我已经设置),然后将其输出到字符串数组,以便我的 Image Fetcher 能够读取它(它必须是一个数组供它读取)。

在一项活动中,我正在设置共享首选项:

        case R.id.FavouriteWallpaper:

        SharedPreferences prefs;
        prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString("imgUrl", mImageUrl);
        editor.commit();

    }
    return super.onOptionsItemSelected(item);
}

在另一个类中,我从共享首选项中获取字符串:

            SharedPreferences prefs;
        prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
        prefs.getString("imgUrl", null); //Output imgUrl to String Array somehow


 // I would like my image fetcher to read a string array that has been fetched from shared preferences. 

mImageFetcher.loadImage(Fragment3.imgUrl[position
                - mNumColumns], imageView);

        return imageView;
    }
4

2 回答 2

0

您可以使用 for 循环获取字符串

考试...

     SharedPreferences prefs;
        prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString("imgUrl", mImageUrl);


for(int i=0; i<arraylist.size(); i++)
{
 editor.putString("imgUrl"+i, arraylist.get(i).toString());

}
 editor.commit();
于 2013-11-28T10:47:11.930 回答
0

您不能真正将数组保存到 SharedPreences,但您可以将所有 url 存储在像 CSV(逗号分隔值)这样的字符串中,并将其存储在 sharePreferences 中。您可以编写一个具有 2 种方法的管理器。一个将您的数组转换为 CSV 并存储,第二个获取 CSV 并将其转换为数组。第二种方法是像 JSONArray 一样保存数据来执行此操作,您还需要编写一个管理器,该管理器也将具有 2 个方法,一个将您的数组转换为 JSONArray 并将其存储在 Shared Preferences 中,第二个将 jsonArray 转换为你的阵列。

于 2013-11-28T10:47:52.780 回答