【发布时间】:2014-10-25 17:46:14
【问题描述】:
s = ans.getText().toString();
jum.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){
String selected = jum.getItemAtPosition(arg2).toString();
if(s.equals(selected))
{
//jum.setItemChecked(arg2, true);
ans.setText("correct");
}
else
{
ans.setText("incorrect");
}
}
});
这里ans 是一个EditText,jum 是一个列表视图。我正在尝试将用户在edittext中输入的字符串与他单击的列表视图中的项目字符串进行比较。
【问题讨论】:
-
“我不明白为什么即使字符串相等,字符串比较也会返回 false” 它不是。所以你需要问自己的问题是:字符串有什么不同,在某种程度上我无法立即看到?
selectisn't broken -
尝试同时记录
s和selected以真正查看它们包含的值。 -
另请记住,字符串有时可能包含您看不到的字符。对你来说可能不是这样,但我经常发现自己将“test”与“test\n”或类似的东西进行比较。当心这些情况!
-
例如,我想引用列表视图有 3 项猫、狗、狮子。在edittext中,我输入了cat,然后单击了列表中的第一项(即cat)。现在预期的答案应该是正确的,但它打印不正确
-
把这个
Log.e(s, selected);放入onItemClick(...)并检查你得到了什么值。
标签: java android string-comparison