Android 坚持比较答案
我正在制作一个测验应用程序。我一直在比较答案。我添加了一个对话框来显示答案是否正确,toast是否也能正常工作。但是当我在每个单词上比较错误答案时,我键入的toast都错了。这里的问题是我用来比较的代码Android 坚持比较答案,android,Android,我正在制作一个测验应用程序。我一直在比较答案。我添加了一个对话框来显示答案是否正确,toast是否也能正常工作。但是当我在每个单词上比较错误答案时,我键入的toast都错了。这里的问题是我用来比较的代码 boolean isCorrectAnswer() { String player_answer = ""; //concat all letters from answer buttons in one string for (int i = 0; i < ans
boolean isCorrectAnswer() {
String player_answer = "";
//concat all letters from answer buttons in one string
for (int i = 0; i < answer_line.length; i++) {
for (int j = 0; j < answer_line[i].getChildCount(); j++) {
Button b = (Button) answer_line[i].getChildAt(j);
player_answer += b.getText().toString();
}
//compare player's answer with correct
if (player_answer.equalsIgnoreCase(correct_answer)) {
ShowToast(check_toast, "Correct", Gravity.CENTER, new Point(0, -50));
return true;
} else {
ShowToast(check_toast, "Wrong", Gravity.CENTER, new Point(0, -50));
return false;
}
}
boolean isCorrectAnswer(){
弦乐演奏者_-answer=“”;
//将应答按钮中的所有字母合并为一个字符串
对于(int i=0;i
***更新编码
public boolean onTouch(View v, MotionEvent event) {
if ((event.getAction() == MotionEvent.ACTION_MOVE) || (event.getAction() == MotionEvent.ACTION_DOWN)) {
if (!b.getText().toString().equals("") && letters_in_answer < correct_answer.length()) {
letters_in_answer++;
System.out.println("letters: " + letters_in_answer);
int free_pos = getFirstFreeAnswerButtonPosition();
Button a = findButtonByPos(answer_line, free_pos);
a.setText(b.getText());
hideButton(b);
link_list.set(free_pos, letter_pos);
Helper.playSound(getApplicationContext(), "click");
}
//pops during correct answer
if (isCorrectAnswer()) {
toUpperCase() + "!", Gravity.CENTER, new Point(0, -50));
Helper.playSound(getApplicationContext(), "correct");
//if not all images was shown we show next image
if (cur_image < images.length - 1) {
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custom);
dialog.setTitle("Title...");
// set the custom dialog components - text, image and button
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Android custom dialog example!");
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setImageResource(R.drawable.ic_launcher);
dialog.show();
Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
generateNewLevel();
}
else {
finish();
Intent endgame = new Intent(GameActivity.this, EndActivity.class);
startActivity(endgame);
finish();
}
}
}
return false;
}
});
}
}
}
}
public boolean onTouch(视图v,运动事件){
if((event.getAction()==MotionEvent.ACTION_MOVE)| |(event.getAction()==MotionEvent.ACTION_DOWN)){
如果(!b.getText().toString().equals(“”)和字母\u在\u-answer
@user3215214如果用户必须输入所有您无法输入的字母,请在isCorrectAnswer()
方法中尝试:
boolean isCorrectAnswer() {
String player_answer = "";
//concat all letters from answer buttons in one string
for (int i = 0; i < answer_line.length; i++) {
for (int j = 0; j < answer_line[i].getChildCount(); j++) {
Button b = (Button) answer_line[i].getChildAt(j);
player_answer += b.getText().toString();
}
//compare player's answer with correct
if(player_answer.length()==correct_answer.length()){
if (player_answer.equalsIgnoreCase(correct_answer)) {
ShowToast(check_toast, "Correct", Gravity.CENTER, new Point(0, -50));
return true;
} else {
ShowToast(check_toast, "Wrong", Gravity.CENTER, new Point(0, -50));
return false;
}
} else return false;
}
boolean isCorrectAnswer(){
弦乐演奏者_-answer=“”;
//将应答按钮中的所有字母合并为一个字符串
对于(int i=0;i
如果键入的每个“单词”(字母?)都显示错误,则调用验证答案的方法的频率会降低。请尝试使用方法equalsIgnoreCase(字符串)而不是equals(对象)@DanielBo当我点击每一个字母时,我都会得到错误的答案。即使我键入正确的答案,它也会显示出来。我的意思是正确答案的字母。但如果答案是正确的,它会传递到下一个问题,但我发现比较错误答案的问题。@MandarKakade我试过了,但我仍然看到我键入的每一个字母上都有吐司。我不知道你想做什么,但这是怎么做的我明白了:如果你在测验中一个字母一个字母地输入答案,那么每次你输入一个字母时,你都在检查答案是否正确,这是不正确的,因为这个字符串(你输入的一个字母)不等于答案,您将收到toast消息。我希望您理解我想说的:)。如果我说的是正确的,您需要在用户输入整个答案后检查答案是否正确。