java - If 语句仅返回 "else"语句的结果

标签 java android if-statement

我正在尝试制作一个脚本来将用户输入与另一个字符串进行比较。问题出在我的 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/

相关文章:

java - 使用类名动态命名索引

java - HttpClient.execute 总是给出异常

android - 替换标准的 Android JSON 解析器以获得更好的性能?

java - Gson Android 和异步任务

如果条件存在,Python 将 1 附加到列表,将 0 附加到所有其他列表

java - Java 中的类格式错误

java - 确定 Java 中时区的 DST 切换日期(向前和向后)?

java - 如何让我的程序在收到指示之前不关闭[距离转换]

java - 错误否则没有

java - 有没有更好的方法在 Java 中进行空检查?