我正在尝试制作一个脚本来将用户输入与另一个字符串进行比较。问题出在我的 if 语句上。我没有收到错误,但它总是返回“else”语句中的结果。这是代码:
String [] lessons_titles = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","30","40","50","60","70","80","90"};
final TextView dan_view = (TextView)findViewById(R.id.DanText);
final int position = getIntent().getExtras().getInt("position");
final String title = lessons_titles[position];
check_b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String textField = check_text.getText().toString();
if (textField == title){
dan_view.setTextColor(Color.GREEN);
}
else {
dan_view.setTextColor(Color.RED);
}
}
});
最佳答案
比较String
时,使用equals()
方法而不是==
运算符。对于String
,如果两个字符串的引用相同,则它们相等,并且要找出它们都引用同一点,您必须使用equals()
方法。 ==
运算符只能比较原始类型值,但 String
的实例是对象。
那么,你的情况应该是这样的......
if (textField.equals(title)){
dan_view.setTextColor(Color.GREEN);
} else {
dan_view.setTextColor(Color.RED);
}
关于java - If 语句仅返回 "else"语句的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22668351/