是否可以在循环中迭代其值时优先保存字符串数组?比如说:
String[] arrayvalue = new String[5];
for (int i = 0; i <= number; i++) {
Log.d(TAG, "ArrayValue" == " + arrayvalue[i]);
String abcd = arrayvalue[i].toString();
prefs.setData(context, abcd);
Log.d("Prefs", "Saving in Preference");
}
实际上有5个值,所以在保存时我会看到&#34; Log&#34;执行5次,但在检索时我只看到最后的第5个值,为什么会这样呢?
//检索
String converteddata = prefs.getData(context);
Log.d("Prefs", "Retreiving from Preference : " + converteddata);
保存
public synchronized String getData(Context context) {
Log.d(TAG, "getData");
SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
return prefs.getString(DATA, DEFAULT_DATA);
}
//检索
public synchronized void setData(Context context, String data) {
Log.d(TAG, "setData");
SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
prefs.edit().putString(DATA, data).commit();
}
答案 0 :(得分:0)
您可以像这样创建自己的数组的String表示:
StringBuilder sb = new StringBuilder();
for (int i = 0; i < playlists.length; i++) {
sb.append(playlists[i]).append(",");
//here you save the string each eteration
prefsEditor.putString(PLAYLISTS, sb.toString());
}
然后当您从SharedPreferences获取String时,只需解析它:
String[] playlists = playlist.split(",");
我希望你找到答案。