我想知道如何能够从我的共享首选项(我已经设置)中获取字符串,然后将其输出到String数组,以便我的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;
}
答案 0 :(得分:0)
你可以使用for循环来获取字符串
... examole
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();
答案 1 :(得分:0)
您无法将数组真正保存到SharedPrerences,但您可以将所有网址存储在CSV(逗号分隔值)等字符串中,并将其存储在sharePreferences中。你可以编写一个有2种方法的经理。一个用于将数组转换为CSV并存储,第二个用于获取CSV并将其转换为数组。 第二种方法是像JSONArray一样保存数据,你还需要编写一个管理器,它也有2个方法,一个用于将数组转换为JSONArray并将其存储在Shared Preferences中,第二个方法是将jsonArray转换为你的阵列。