Почему `equals` не сравнивает строку и массив строк? - PullRequest
0 голосов
/ 01 сентября 2018

Я сравниваю входные данные из 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"));
        }
}

}

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

Вопрос ОП касался сравнения 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"));
    }
}
0 голосов
/ 01 сентября 2018

удалить это ключевое слово

......
edit1 = findViewById(R.id.edit1);
view1 = findViewById(R.id.view1);
score_view = findViewById(R.id.score_view);

......

добавить это в методе OnClick ()

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