1. 程式人生 > >Android 學習筆記之SharedPreference

Android 學習筆記之SharedPreference

andro 使用 googl Edito 獲取 存儲 dep ont print

Android 學習筆記之SharedPreference

SharedPreference作為android常用的四種存儲方式之一,在輕量級的使用中比較常見

創建、獲取sharedpreference

SharedPreferences myPreference;
myPreference = getSharedPreferences("myPreference", Context.MODE_PRIVATE);

寫入數據

SharedPreferences.Editor editor = myPreferences.edit();
String userIfo = "abc";
editor.putString("userIfo", userIfo);

editor.apply();//editor.commit()

可放入的數據類型有如下所示
技術分享圖片

讀數據

myPreference = getSharedPreferences("myPreference", Context.MODE_PRIVATE);
String userIfo = myPreference.getStringSet("userIfo", " ");//第二個參數為讀取不成功時默認值

但是這樣對對象的存儲並不方便,我在網上又get到可以使用Gson框架將對象數據轉換為String進行存儲

需要在build.gradle配置文件中添加如下代碼

dependencies {
    implementation ‘com.google.code.gson:gson:2.8.5‘
}

Gson 進行 轉換

User user = new User();
Gson gson = new Gson();
String jsonStr = gson.toJson(user); // User對象轉換為String
User user_1 = gson.fromJson(jisonStr, User.class) //String轉換為User

所以也能夠在SharedPreference中借助putStringSet存儲多個對象數據

存儲

private SharedPreferences myPreference;

user = new User();
user1 = new User("abc","123",true);
myPreferences = getSharedPreferences("myPreference", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = myPreferences.edit();
Gson gson = new Gson();
String jsonStr = gson.toJson(user);
String jsonStr1 = gson.toJson(user1);
Set<String> userSet = new HashSet<String>();
userSet.add(jsonStr);
userSet.add(jsonStr1);
editor.putStringSet("userIfo", userSet);
editor.apply();

讀取

private SharedPreferences myPreference;

myPreference = getSharedPreferences("myPreference", Context.MODE_PRIVATE);
Set<String> set = new HashSet<String>();
Set userSet = myPreference.getStringSet("userIfo",set);
if(userSet.size() == 0){
    System.out.println("用戶未登陸過");
    user = new User();
}else{
    String[] data = (String[]) userSet.toArray(new String[userSet.size()]);
    for(String uu : data){
        Gson gson = new Gson();
        user = gson.fromJson(uu, User.class);
        System.out.println(user.getUserName());
    }
}

Android 學習筆記之SharedPreference