Android 學習筆記之SharedPreference
阿新 • • 發佈:2018-11-01
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