gpt4 book ai didi

java - 如何从Android上的sharedPreferences获取多个值?

转载 作者:行者123 更新时间:2023-12-02 03:23:42 25 4
gpt4 key购买 nike

我正在我的测试应用程序上注册用户,并使用sharedPreferences将所有数据保存到持久存储中,但我想在登录后通过调用getData方法来获取这些值,该方法具有返回当前注册用户保存的所有数据,其中包括他的姓名、用户名和出生日期。所以我想到使用 map ,因为它是 Java 中的字典。

但我不确定我在 getData 中捕获的内容是否正确。

以下是我的代码:

public class AddUser {

private static String NAME_KEY;
private static String DOB_KEY;
private static String USERNAME_KEY;
private static String PASSWORD_KEY;

Map<String,String> values = new HashMap<String,String>();

public static void saveData(Context context, String name, String dob, String username, String password){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(NAME_KEY, name);
editor.putString(DOB_KEY, dob);
editor.putString(USERNAME_KEY, username);
editor.putString(PASSWORD_KEY, password);
editor.commit();
}

public Map<String, String> getData(Context context, String name, String dob, String username){
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
try{
sharedPrefs.getString(NAME_KEY, name);
sharedPrefs.getString(USERNAME_KEY, username);
sharedPrefs.getString(DOB_KEY, dob);
values = (Map<String, String>) sharedPrefs;
return values;
} catch(Exception e) {
e.printStackTrace();
return values;
}
}
}

我的目标是获取返回值名称、用户名和出生日期,并将它们显示在我想要的不同字段上。

最佳答案

public Map<String, String> getData(Context context) { //other paramaters are only usefull if you want provide default values
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
Map<String, String> userDetails = new HashMap<String,String>(); //create the map with String->String

String name = sharedPrefs.getString(NAME_KEY, null); //get the value
userDetails.put(NAME_KEY, name); //put it in the map
String username = sharedPrefs.getString(USERNAME_KEY, null);
userDetails.put(USERNAME_KEY, username);
String dob = sharedPrefs.getString(DOB_KEY, null);
userDetails.put(DOB_KEY, dob);

return userDetails; //return the map
}

在这种情况下,我建议您使用类而不是 Map。这些值彼此相关。

关于java - 如何从Android上的sharedPreferences获取多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39275477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com