如何在迭代进行时优先保存字符串数组

时间:2015-04-11 16:14:47

标签: android

是否可以在循环中迭代其值时优先保存字符串数组?比如说:

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();
}

1 个答案:

答案 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(",");

我希望你找到答案。