首页 > 代码库 > 怎么判断SharedPreferences 的某个记录已存在呢
怎么判断SharedPreferences 的某个记录已存在呢
============问题描述============
这是点按钮后保存搜索信息到历史文件的方法:
为什么都是返回true? 明明里面已经存在了呀?哪里有问题呢
public void save() { // 获取搜索框信息 String text = auto.getText().toString(); boolean add=true; SharedPreferences mysp = getSharedPreferences("search_history", 0); String old_text = mysp.getString("history", ""); StringBuilder builder = new StringBuilder(old_text); // 利用StringBuilder的append方法新增内容,逗号便于读取内容时用逗号拆分开 builder.append(text + ","); //如何判断记录已经存在? String[] history_arr = old_text.split(","); for(int i = 0;i<history_arr.length;i++){ if(history_arr[i]==text){ add=false; break; } } if(add){ SharedPreferences.Editor myeditor = mysp.edit(); myeditor.putString("history", builder.toString()); myeditor.commit(); Toast.makeText(this, text+"添加成功", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this, text+"已存在", Toast.LENGTH_SHORT).show(); } }
============解决方案1============
if(history_arr[i]==text) 字符串的判断应该用equals,你现在这么判断怎么都不会等的
============解决方案2============
你的history_arr[i]==text字符串相等不能用它啊,用equals就可以了。
怎么判断SharedPreferences 的某个记录已存在呢
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。