猿问

为什么`equals`不比较字符串和字符串数组?

我正在将来自 a 的输入TextEdit与来自“answerList”的答案进行比较。现在我想知道:为什么不.equals()比较“uinput” String?有人可以向我解释这一点并在代码中使用它吗?


提前致谢,祝您有美好的一天!


package ...


import android.graphics.Color;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.EditText;

import android.widget.TextView;


public class MainActivity extends AppCompatActivity {


public TextView view1;

public String uinput;

public EditText edit1;

public TextView score_view;

public int score = 0;


public String[] questionList = {

        "lux, luces",

        "munus, munera",

        "neglere",

};


public String[] answerList = {

        "(dag)licht, dag",

        "taak",

        "verwaarlozen",

};


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);


    this.edit1 = findViewById(R.id.edit1);

    this.view1 = findViewById(R.id.view1);

    this.score_view = findViewById(R.id.score_view);

    this.uinput = edit1.getText().toString();

    view1.setText(questionList[0]);

}


    public void check(View view) {

        if (uinput.equals(answerList[0])) {

            edit1.setBackgroundColor(Color.parseColor("#00FF00"));

            score++;

            score_view.setText(score);

        } else {

            edit1.setBackgroundColor(Color.parseColor("#FF0000"));

        }

}

}


慕仙森
浏览 172回答 2
2回答

慕桂英4014372

OP 的问题涉及将 与uinput数组中的元素进行比较questionList。在该check方法中,对 进行了比较uinput,但uinput在检查之前未更新 的值。public void check(View view) {    // ADD HERE: update the value of the input    uinput = edit1.getText().toString();    if (uinput.equals(answerList[0])) {        edit1.setBackgroundColor(Color.parseColor("#00FF00"));        score++;        score_view.setText(score);    } else {        edit1.setBackgroundColor(Color.parseColor("#FF0000"));    }}
随时随地看视频慕课网APP

相关分类

Java
我要回答