У меня есть 2 текстовых поля, 1 editbox и 1 кнопка в моем xml.равная функция не работает в моем java-коде
в моем коде эта линия не работает:
if(c.equals(str)){
Toast.makeText(GameActivity.this, "Alright",Toast.LENGTH_LONG).show();
}
но следующая строка (еще) работает и в обоих случаях (если & еще) показать еще функцию тост («Неправильный»).
мой код это:
public class GameActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game);
Button b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView tv = (TextView) findViewById(R.id.textView1);
TextView tv2 = (TextView) findViewById(R.id.textView2);
Random r = new Random();
int i = r.nextInt(10 - 2) + 2;
tv.setText(i +"");
Random r1 = new Random();
int j = r1.nextInt((9 - 2) + 1) + 2;
tv2.setText(j +"");
int a = Integer.parseInt(tv.getText().toString());
int b = Integer.parseInt(tv2.getText().toString());
int result = a*b;
String str = String.valueOf(result);
EditText txt4 = (EditText) findViewById(R.id.editText1);
String c = txt4.getText().toString();
if(TextUtils.isEmpty(txt4.getText().toString())) {
txt4.setError("Please enter your answer");
return;
}
if(c.equals(str)){
Toast.makeText(GameActivity.this, "Alright",Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(GameActivity.this, "wrong",Toast.LENGTH_LONG).show();
}
txt4.setText("");
}
});
}
Так что 'c.equals (str)' возвращает false, когда вы ожидаете true? Вы отлаживали и проверяли значения для 'c' и' str' на самом деле были равны? В случае, если условие действительно выполнено, вы проверили 'Toast.makeText (...)' делает правильную вещь и не имеет в ней каких-то жестко закодированных значений? – Thomas
Запустите 'Log.e ('testing equal', c +": "+ str)' перед 'if' и опубликуйте результаты журнала. Он должен показать что-то вроде 'String1: StringYouThinkIsString1' –
' str' похоже, фактически содержит число, вы пытались разобрать ввод пользователя на номер (проверьте, был ли введен номер сначала, например, с простым регулярным выражением) и вместо этого сравнивайте числа строк? – Thomas