当前位置: 代码迷 >> Android >> 如何判断SharedPreferences 的某个记录已存在呢
  详细解决方案

如何判断SharedPreferences 的某个记录已存在呢

热度:61   发布时间:2016-04-28 04:07:46.0
怎么判断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();
}

}


------解决思路----------------------
if(history_arr[i]==text)  字符串的判断应该用equals,你现在这么判断怎么都不会等的
------解决思路----------------------
你的history_arr[i]==text字符串相等不能用它啊,用equals就可以了。