JohnPix
JohnPix

Reputation: 1833

Compare data from edit text with data from if statement

I'm making a quiz app. User has to finish the phrase shown on display and write the name of the car in the edittext, after pushing on button, if the answer right, edittext become green, if doesn't, become red. If all answers right (green), intent move on next activity.

I have some difficulties with if statement edit text become red even the answer was right. Also how to make INTENT to move on next activity if all right, if not it doesn't move?

public class MainActivity extends AppCompatActivity {

EditText et_one_one, et_one_two, et_one_three;
Button buttonCheck;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    et_one_one = (EditText) findViewById(R.id.et_one_one);
    et_one_two = (EditText) findViewById(R.id.et_one_two);
    et_one_three = (EditText) findViewById(R.id.et_one_three);

    final String t1 = et_one_one.getText().toString();
    final String t2 = et_one_two.getText().toString();
    final String t3 =  et_one_three.getText().toString();

    buttonCheck = (Button) findViewById(R.id.buttonCheck);

    buttonCheck.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
               if (t1.equals("maserati")){
                et_one_one.setBackgroundColor(Color.GREEN);
            }
            else {
                et_one_one.setBackgroundColor(Color.RED);
            }
            if (t2.equals("mercedes")){
                et_one_two.setBackgroundColor(Color.GREEN);
            }
            else{
                et_one_two.setBackgroundColor(Color.RED);
            }
            if (t3.equals("bmw")){
                et_one_three.setBackgroundColor(Color.GREEN);
            }
            else{
                et_one_three.setBackgroundColor(Color.RED);
            }
        }
    });
}

}

Upvotes: 1

Views: 60

Answers (2)

Antrromet
Antrromet

Reputation: 15414

You're changing the color of just the et_one_one each time in your if else statements. Shouldn't it be for different edittexts?

buttonCheck.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        boolean allAnswersCorrect = true;
        String t1 = et_one_one.getText().toString();
        String t2 = et_one_two.getText().toString();
        String t3 =  et_one_three.getText().toString();
        if (t1.equals("maserati")){
            et_one_one.setBackgroundColor(Color.GREEN);
        }
        else {
            allAnswersCorrect = false;
            et_one_one.setBackgroundColor(Color.RED);
        }
        if (t2.equals("mercedes")){
            et_one_two.setBackgroundColor(Color.GREEN);
        }
        else{
            allAnswersCorrect = false;
            et_one_two.setBackgroundColor(Color.RED);
        }
        if (t3.equals("bmw")){
            et_one_three.setBackgroundColor(Color.GREEN);
        }
        else{
            allAnswersCorrect = false;
            et_one_three.setBackgroundColor(Color.RED);
        }
        if(allAnswersCorrect){
            Intent intent = new Intent(YourActivity.this, YourSecondActivity.class);
            startActivity(intent);
        }
    }
});

Maintain a allAnswersCorrect boolean to check whether your answers are correct or not. If all are correct the move to your next activity.

Upvotes: 1

Gjoko Bozhinov
Gjoko Bozhinov

Reputation: 1177

You should use t2.equals("maserati"), and it will be ok.

Upvotes: 1

Related Questions