3 回答
TA贡献1829条经验 获得超13个赞
那么您是否尝试为每个用户的 sharedPreference 数据库设置不同的名称?
public void saveInfo(View view,User[] userList)
{
for (int i = 0, i < userList.count){
User user = userList[i];
// I am creating a new shared prefence for each user!
// by their username.
SharedPreferences sharedPref = getSharedPreferences("userInfo_"+user.username.trim(), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("username",user.username);
editor.putString("date",user.date);
editor.apply();
}
}
之后,要获取特定用户的数据,您只需要他们的用户名:
SharedPreferences sharedPref = getSharedPreferences("userInfo_"+user.username.trim(), Context.MODE_PRIVATE);
String userDate = sharedPref.getString("date", "unknown");
TA贡献2080条经验 获得超4个赞
我认为您应该创建自己的类,该类将保存您需要的字段数据。另外,我建议您创建一个List
对象而不是使用数组以获得更舒适的选项,例如List.size()
:
UserData userData = new UserData(View view, List<User> users);
然后Map
使用您的自定义唯一密钥保存它,以轻松UserData
满足各种使用需求:
private Map<String, UserData> userDataMap = new HashMap<>();
TA贡献1824条经验 获得超5个赞
如何使用数组中的数字来实现这一点?可能是这样的:
public void saveInfo(View view,User[] userList)
{
SharedPreferences sharedPref = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
for (int i = 0, i < userList.count){
User user = userList[i]
editor.putString("username-"+i,user.username);
editor.putString("date-"+i,user.date);
editor.apply();
}
}
有了这个,您可以保存三个用户,然后使用用户名-(用户编号)从共享首选项中调用它们
添加回答
举报