Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java If语句只返回来自;否则";陈述_Java_Android_If Statement - Fatal编程技术网

Java If语句只返回来自;否则";陈述

Java If语句只返回来自;否则";陈述,java,android,if-statement,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_vie

我试图制作一个脚本,将用户输入与另一个字符串进行比较。问题在于我的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);                   
            }                           
        }
    });
比较
字符串时,请使用
equals()
方法而不是
=
运算符。在
String
的情况下,如果两个字符串的引用相同,则两个字符串将相等,要确定它们都引用同一点,必须使用
equals()
方法
=
运算符只能比较基元类型值,但
字符串的实例是对象

所以,你的情况应该如下

if (textField.equals(title)){
    dan_view.setTextColor(Color.GREEN);
} else {
    dan_view.setTextColor(Color.RED);
} 
比较
字符串时,请使用
equals()
方法而不是
=
运算符。在
String
的情况下,如果两个字符串的引用相同,则两个字符串将相等,要确定它们都引用同一点,必须使用
equals()
方法
=
运算符只能比较基元类型值,但
字符串的实例是对象

所以,你的情况应该如下

if (textField.equals(title)){
    dan_view.setTextColor(Color.GREEN);
} else {
    dan_view.setTextColor(Color.RED);
} 
您的错误如下:

if (textField == title){ //<--
您的错误如下:

if (textField == title){ //<--

=
用于测试两个字符串是否为同一对象;-参考平等

您希望检查该值,因此应使用
.equals()

看看:


进一步澄清。

=
用于测试两个字符串是否为同一对象;-参考平等

您希望检查该值,因此应使用
.equals()

看看:

进一步澄清。

使用此

 if (textField.compareTo(title) == 0)
 {
   dan_view.setTextColor(Color.GREEN);
 }
  else {
      dan_view.setTextColor(Color.RED);                   
  }     
用这个

 if (textField.compareTo(title) == 0)
 {
   dan_view.setTextColor(Color.GREEN);
 }
  else {
      dan_view.setTextColor(Color.RED);                   
  }     
“textField==title”使用==将检查它们是否完全相同,不仅是值,而且还存储在相同的内存位置

相反,尝试使用 if(textField.equals(title)){

这里显示了一个很好的示例,使用==将检查它们是否完全相同,不仅是值,而且还存储在相同的内存位置

相反,尝试使用 if(textField.equals(title)){

这里显示了一个很好的示例