下午所有,
我对android和java一般都很陌生,所以我不确定我想要实现的是这样的。
我正在尝试在共享首选项类中实现Get和Set方法以保存数组并在需要时再次将其取出。在一个完美的世界里,我会使用下面的代码:
public class dataStorage {
private SharedPreferences sharedPreferences;
private static String PREF_NAME = "prefs";
public dataStorage() {
// Blank
}
private static String[] getPuzzleList(Context context, String key)
{
return getPrefs(context).getArray(PREF_NAME, Context.MODE_PRIVATE);
}
private static void setPuzzleList(Context context, String key, String[] stringArray)
{
SharedPreferences.Editor editor = getPrefs(context).edit();
editor.putArray(key, stringArray);
editor.commit();
}
private static SharedPreferences getPrefs(Context context) {
return context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
}
public static String getPuzzle(Context context, String key) {
return getPrefs(context).getString(key, "default_string");
}
public static void setPuzzle(Context context, String key, String value) {
SharedPreferences.Editor editor = getPrefs(context).edit();
editor.putString(key , value);
editor.commit();
}
}
我对单个拼图的设置和设置工作正常,因为putString
和getString
是有效的方法,而getArray
和`putArray则不是。
我是否可以使用方法调用将字符串数组传入和传出共享首选项,或者我是否必须实现forloops才能将它们保存为单独的字符串?当我想传递给ArrayAdapter时,使用另一个for循环将所有字符串重新组合成一个数组?
欢迎任何反馈。感谢。
答案 0 :(得分:1)
您可以放置 Set:
private static void setPuzzleList(Context context, String key, String[] stringArray) {
SharedPreferences.Editor editor = getPrefs(context).edit();
Set<String> set = new HashSet<String>();
set.addAll(Arrays.asList(stringArray));
editor.putStringSet("key", set);
editor.commit();
}
答案 1 :(得分:0)
存储数组
public static void storeArray()
{
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sp.edit();
for(int i=0;i<stringArray.length;i++)
{
editor.putString("key" + i, stringArray[i]);
}
editor.commit();
}