要解决这个问题,可以使用以下方法:
public class SharedPreferenceHelper {
private static final String PREF_NAME = "your_pref_name";
private static final String KEY_POJOS = "key_pojos";
public static void savePOJOs(Context context, ArrayList pojos) {
SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
Gson gson = new Gson();
String json = gson.toJson(pojos);
editor.putString(KEY_POJOS, json);
editor.apply();
}
public static ArrayList getPOJOs(Context context) {
SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
String json = sharedPreferences.getString(KEY_POJOS, "");
Gson gson = new Gson();
Type type = new TypeToken>() {}.getType();
return gson.fromJson(json, type);
}
public static void clearPOJOs(Context context) {
SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.remove(KEY_POJOS);
editor.apply();
}
}
// 保存POJO列表
SharedPreferenceHelper.savePOJOs(context, pojoList);
// 获取POJO列表
ArrayList retrievedPOJOs = SharedPreferenceHelper.getPOJOs(context);
// 清除POJO列表
SharedPreferenceHelper.clearPOJOs(context);
这样,POJO列表将被保存在SharedPreferences中,并且可以在所有设备上进行读取和清除。每当你添加或删除POJO时,只需要调用相应的方法即可。