要保存新的自定义ArrayList形式,可以使用SharedPreferences。下面是一个示例代码,演示了如何将自定义ArrayList保存到SharedPreferences中,并从中读取出来。
首先,创建一个名为CustomArrayList的类,该类表示自定义的ArrayList形式:
public class CustomArrayList {
private String name;
private int age;
public CustomArrayList(String name, int age) {
this.name = name;
this.age = age;
}
// Getters and setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
接下来,创建一个名为CustomArrayListManager的辅助类,用于管理保存和读取自定义ArrayList的操作:
import android.content.Context;
import android.content.SharedPreferences;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
public class CustomArrayListManager {
private static final String PREF_NAME = "CustomArrayListPrefs";
private static final String KEY_CUSTOM_ARRAY_LIST = "customArrayList";
public static void saveCustomArrayList(Context context, List customArrayList) {
SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
Gson gson = new Gson();
String json = gson.toJson(customArrayList);
editor.putString(KEY_CUSTOM_ARRAY_LIST, json);
editor.apply();
}
public static List getCustomArrayList(Context context) {
SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
String json = sharedPreferences.getString(KEY_CUSTOM_ARRAY_LIST, null);
Gson gson = new Gson();
Type type = new TypeToken>(){}.getType();
return gson.fromJson(json, type);
}
}
最后,在需要保存和读取自定义ArrayList的地方,可以使用CustomArrayListManager类进行操作:
// 保存自定义ArrayList
List customArrayList = new ArrayList<>();
// 添加元素到customArrayList
CustomArrayListManager.saveCustomArrayList(context, customArrayList);
// 读取自定义ArrayList
List savedCustomArrayList = CustomArrayListManager.getCustomArrayList(context);
在上述示例代码中,我们使用了Gson库来将自定义ArrayList转换为JSON字符串进行保存,并将JSON字符串转换回ArrayList进行读取。这样可以确保自定义ArrayList的完整性和类型安全性。