SharedPreferences StringSet 保存失败


在取出StringSet进行操作后, 直接使用putStringSet方法, 虽然内存中已经改变, 但是并不能覆盖进文件.


应进行一次删除原set操作 , 然后再存入就正常了

   
   
public static void saveStringSet(String key, Set<String> stdNoSet){
getSpf().edit().putStringSet(key,null).commit();
getSpf().edit().putStringSet(key,stdNoSet).apply();
}

这段代码是用 Java 语言编写的,主要是一个登录功能的实现。以下是每行代码的解释: 1. `if (loginResult == true){`:如果登录结果为真,即用户名和密码验证通过,进入下一步操作。 2. `userArrayList = userTableHelper.UserList(dbHelper,str_username);`:从数据库中获取与给定用户名匹配的用户记录,并将其存储在一个ArrayList中。 3. `String user_role = userArrayList.get(0).getRole();`:从ArrayList中获取第一个用户的角色信息,并将其存储在一个字符串变量中。 4. `String user_uid = userArrayList.get(0).getId();`:从ArrayList中获取第一个用户的ID信息,并将其存储在一个字符串变量中。 5. `String user_passlock = userArrayList.get(0).getPasslock();`:从ArrayList中获取第一个用户的密码锁信息,并将其存储在一个字符串变量中。 6. `SaveUP(str_username,str_password,user_uid,user_role,user_passlock);`:将用户名、密码、用户ID、角色和密码锁信息保存到本地。 7. `Toast.makeText(LoginActivity.this,"登录成功!",Toast.LENGTH_SHORT).show();`:在屏幕底部显示“登录成功!”的提示信息。 8. `if (user_role.equals("MANAGERS")){`:如果用户角色为“MANAGERS”(管理员),进入下一步操作。 9. `SharedPreferences sharedPreferences=getSharedPreferences("account",MODE_PRIVATE);`:获取一个名为“account”的shared preferences对象。 10. `SharedPreferences.Editor editor = sharedPreferences.edit();`:获取shared preferences对象的编辑器。 11. `editor.putString("role","MANAGERS");`:将用户角色信息存储到shared preferences对象中。 12. `editor.commit();`:提交shared preferences对象的修改。 13. `Intent goto1 = new Intent(LoginActivity.this,ShowBooksActivity.class);`:创建一个Intent对象,用于跳转到ShowBooksActivity活动。 14. `startActivity(goto1);`:启动ShowBooksActivity活动。 15. `}else {`:如果用户角色不为“MANAGERS”,进入下一步操作。 16. `SharedPreferences sharedPreferences = getSharedPreferences("account",MODE_PRIVATE);`:获取一个名为“account”的shared preferences对象。 17. `SharedPreferences.Editor editor = sharedPreferences.edit();`:获取shared preferences对象的编辑器。 18. `editor.putString("role","USER");`:将用户角色信息存储到shared preferences对象中。 19. `editor.commit();`:提交shared preferences对象的修改。 20. `Intent goto2 = new Intent(LoginActivity.this,ShowBooksActivity.class);`:创建一个Intent对象,用于跳转到ShowBooksActivity活动。 21. `startActivity(goto2);`:启动ShowBooksActivity活动。 22. `}else {`:如果登录结果为假,即用户名不存在或密码错误,进入下一步操作。 23. `sqTipsDialog.setMsg("登录失败!用户名不存在或密码错误!");`:设置提示框的文本信息为“登录失败!用户名不存在或密码错误!”。 24. `sqTipsDialog.show();`:显示提示框。 25. `}else {`:如果用户名或密码为空,进入下一步操作。 26. `sqTipsDialog.setMsg("请填写用户名或密码!");`:设置提示框的文本信息为“请填写用户名或密码!”。 27. `sqTipsDialog.show();`:显示提示框。 28. `break;`:结束switch语句的执行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值