是否可以将字符串数组转换为for循环中的字符串并将其保存到android首选项中

时间:2015-04-11 13:02:51

标签: android

在for循环中我接收数组元素的值,在同一个循环中如何将字符串数组转换为字符串,以便我可以在android偏好中保存值。以下是我的代码:

Class A {

private String[] array = new String[20];

for (int i = 0; i <= count; i++) {
Log.d(TAG, "array == " + array[i]);    //Here in below log I will receive all the array values 

for (int j = 0; j <= count; j++) {             
                    String a=array[j];            
                    editor.putString("myString"+String.valueOf(j), a); 
                    editor.commit();
                    Log.d("Prefs", "Saved String");
                }

                int size= sharedPreferencesFDefault.getInt("arraySize", 0);
                String[] arrayGet = new String[size];

for (int k = 0; k < size; k++) { 
                    arrayGet[k] = sharedPreferencesFDefault.getString("myString"+String.valueOf(k), "");
                    Log.d("Prefs", "Received String" + arrayGet[k]);
                }

}
}

由于

1 个答案:

答案 0 :(得分:1)

您可以存储但是当您尝试获取它时,您需要知道已保存的字符串的位置。

Class A {
    private static SharedPreferences sharedPreferencesFDefault=PreferenceManager.getDefaultSharedPreferences(this);        
    SharedPreferences.Editor editor = sharedPreferencesFDefault.edit();
    private String[] array = new String[20];

    for (int i = 0; i < array.length; i++) {             
        String a=array[i];            
        editor.putString("myString"+String.valueOf(i), a); 
        editor.commit();
    }
    //save size as well so you can get all array later
    editor.putInt("arraySize", array.length); 
    editor.commit();
}

获得它

int size= sharedPreferencesFDefault.getInt("arraySize", 0);
String[] arrayGet = new String[size];

for (int i = 0; i < size; i++) { 
    arrayGet[i] = sharedPreferencesFDefault.getString("myString"+String.valueOf(i), "");
}