91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

android sharedpreference是否支持復雜對象

小樊
81
2024-11-23 03:53:09
欄目: 編程語言

Android SharedPreferences 本身不支持存儲復雜對象。SharedPreferences 只能存儲基本數據類型,如字符串、整數、布爾值和浮點數等。如果你需要存儲復雜對象,你需要將它們轉換為可以序列化的數據類型,例如 JSON 字符串。

要將復雜對象存儲到 SharedPreferences,你可以將對象序列化為 JSON 字符串,然后將其存儲在 SharedPreferences 中。當需要從 SharedPreferences 讀取對象時,你可以將 JSON 字符串反序列化為對象。以下是使用 Gson 庫進行序列化和反序列化的示例:

  1. 首先,添加 Gson 依賴項到你的項目的 build.gradle 文件中:
dependencies {
    implementation 'com.google.code.gson:gson:2.8.9'
}
  1. 創建一個復雜對象類,例如 User:
public class User {
    private String name;
    private int age;

    // 構造函數、getter 和 setter 方法
}
  1. 將復雜對象序列化為 JSON 字符串并存儲到 SharedPreferences:
User user = new User("John Doe", 30);
Gson gson = new Gson();
String jsonUser = gson.toJson(user);
SharedPreferences sharedPreferences = getSharedPreferences("MyPreferences", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("user", jsonUser);
editor.apply();
  1. 從 SharedPreferences 讀取 JSON 字符串并將其反序列化為對象:
SharedPreferences sharedPreferences = getSharedPreferences("MyPreferences", MODE_PRIVATE);
String jsonUser = sharedPreferences.getString("user", "");
Gson gson = new Gson();
User user = gson.fromJson(jsonUser, User.class);

這樣,你就可以在 SharedPreferences 中存儲和讀取復雜對象了。請注意,這種方法可能會導致性能問題,因為 JSON 序列化和反序列化需要額外的計算。對于大型對象或頻繁讀寫操作,你可能需要考慮使用其他持久化存儲方案,如 SQLite 數據庫或 Room 數據庫。

0
常山县| 陆川县| 桂平市| 双流县| 河西区| 军事| 同德县| 昂仁县| 东明县| 平度市| 科技| 蓬莱市| 靖州| 万年县| 武山县| 曲靖市| 繁昌县| 芜湖市| 贡嘎县| 松阳县| 平乐县| 富川| 库车县| 姜堰市| 广德县| 龙门县| 广饶县| 临朐县| 东明县| 彭泽县| 方正县| 大城县| 山西省| 巫溪县| 临邑县| 延寿县| 新民市| 河东区| 枝江市| 庆元县| 兴业县|