如何从 SharedPreference 读取 ArrayList 键和 ArrayList 值?
How to read ArrayList key and ArrayList value from SharedPreference?
我有两个 ArrayList,其中一个包含 userNames 的值,另一个包含它们对应的 userIds。
final ArrayList<String> user_names = new ArrayList<String>();
user_names.add("rocky");
user_names.add("pinky");
user_names.add("chinky");
final ArrayList<String> user_ids = new ArrayList<String>();
user_ids.add("abc");
user_ids.add("efg");
user_ids.add("des");
我已将 user_names 存储为键,将 user_ids 存储为 SharePreferences 中的相应值。
每当用户选择一个名称时,应从 SharedPreference.I 检索其对应的 id 已实现如下所示的 sharedPreference 以存储该值,但不确定如何从 SharedPreference 检索这些值。任何帮助将不胜感激。
SharedPreferences keyValues = getSharedPreferences("userId_values", Context.MODE_PRIVATE);
final SharedPreferences.Editor keyValuesEditor = keyValues.edit();
final Map<ArrayList<String>, ArrayList<String>> sharedKeyValue = new HashMap<>();
sharedKeyValue.put(user_names,user_ids);
keyValuesEditor.apply();
keyValuesEditor.commit();
您可以使用 Gson 将 hashmap 转换为字符串。然后将其存储在 SharedPreference.
private fun addToSP() {
val userNames = ArrayList<String>()
userNames.add("rocky")
userNames.add("pinky")
userNames.add("chinky")
val userIds = ArrayList<String>()
userIds.add("abc")
userIds.add("efg")
userIds.add("des")
val keyValues = getSharedPreferences("userId_values", MODE_PRIVATE)
val keyValuesEditor = keyValues.edit()
val sharedKeyValue: MutableMap<ArrayList<String>, ArrayList<String>> = HashMap()
sharedKeyValue[userIds] = userIds
val gson = Gson()
val hashMapString = gson.toJson(sharedKeyValue)
keyValuesEditor.putString("MYHASHMAP", hashMapString)
keyValuesEditor.apply()
keyValuesEditor.commit()
//get from shared prefs
val storedHashMapString = keyValues.getString("MYHASHMAP", "oopsDintWork")
val type: Type = object : TypeToken<HashMap<List<String>, List<String>>>() {}.type
val testHashMap2: HashMap<String, String> = gson.fromJson(storedHashMapString, type)
}
我有两个 ArrayList,其中一个包含 userNames 的值,另一个包含它们对应的 userIds。
final ArrayList<String> user_names = new ArrayList<String>();
user_names.add("rocky");
user_names.add("pinky");
user_names.add("chinky");
final ArrayList<String> user_ids = new ArrayList<String>();
user_ids.add("abc");
user_ids.add("efg");
user_ids.add("des");
我已将 user_names 存储为键,将 user_ids 存储为 SharePreferences 中的相应值。 每当用户选择一个名称时,应从 SharedPreference.I 检索其对应的 id 已实现如下所示的 sharedPreference 以存储该值,但不确定如何从 SharedPreference 检索这些值。任何帮助将不胜感激。
SharedPreferences keyValues = getSharedPreferences("userId_values", Context.MODE_PRIVATE);
final SharedPreferences.Editor keyValuesEditor = keyValues.edit();
final Map<ArrayList<String>, ArrayList<String>> sharedKeyValue = new HashMap<>();
sharedKeyValue.put(user_names,user_ids);
keyValuesEditor.apply();
keyValuesEditor.commit();
您可以使用 Gson 将 hashmap 转换为字符串。然后将其存储在 SharedPreference.
private fun addToSP() {
val userNames = ArrayList<String>()
userNames.add("rocky")
userNames.add("pinky")
userNames.add("chinky")
val userIds = ArrayList<String>()
userIds.add("abc")
userIds.add("efg")
userIds.add("des")
val keyValues = getSharedPreferences("userId_values", MODE_PRIVATE)
val keyValuesEditor = keyValues.edit()
val sharedKeyValue: MutableMap<ArrayList<String>, ArrayList<String>> = HashMap()
sharedKeyValue[userIds] = userIds
val gson = Gson()
val hashMapString = gson.toJson(sharedKeyValue)
keyValuesEditor.putString("MYHASHMAP", hashMapString)
keyValuesEditor.apply()
keyValuesEditor.commit()
//get from shared prefs
val storedHashMapString = keyValues.getString("MYHASHMAP", "oopsDintWork")
val type: Type = object : TypeToken<HashMap<List<String>, List<String>>>() {}.type
val testHashMap2: HashMap<String, String> = gson.fromJson(storedHashMapString, type)
}