在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]);
}
}
}
由于
答案 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), "");
}