真正的答案按钮绿色[关闭]

问题描述 投票:-2回答:1

我做一个测验应用程序。

当用户点击正确的答案,我希望按钮变为绿色。但我不知道怎么办。

private TextView countLabel;
private ImageView questionImage;
private Button answerBtn1;
private Button answerBtn2;
private Button answerBtn3;
private Button answerBtn4;
private TextView textView;
private String rightAnswer;
private int rightAnswerCount = 0;
private int quizCount = 1;

ArrayList<ArrayList<String>> quizArray = new ArrayList<>();

String quizData[][] = {
        // {"Image Name", "Right Answer", "Choice1", "Choice2", "Choice3"}
        {"Aşağıdaki tümcelerle bir paragraf oluşturulduğunda, hangisi son tümce olur ?", "Önce hoşa gidiyor,sonra üşütüyordu insanı.", "Pencereyi ardına kadar açtım.", "Pencereyi ardına kadar açtım.", "Odanın içine gecenin serinliği doldu."},
        {"Ben insanın iş görme isteğini ve yaşama çabasını daima canlı tutmasını isterim.Ölüm,bahçeme fidanlarını dikerken bulmalı beni;ama ölüm korkusu,bahçemi yitirme korkusu içinde değil Diyen biri için aşağıdakilerden hangisi söylenemez ?", "Telaşlı olduğu", "Hayatı sevdiği", "Umutlu olduğu", "Çalışkan olduğu"},
        {"Bu ayrımın dışında iki toplum birbirini kabullenmiş hatta kaynaşmış olarak yaşıyorlardı. Öylesine ki Feride? nin çocukluğunda bir Rum delikanlısı, dul bir kadının tek oğlu, bir kaza sonucu öldüğünde, bu acıklı olaya türkü yakanlar Türkler olmuşlardır. Yukarıdaki paragrafın konusu aşağıdaki seçeneklerin hangisindedir ?", "İki toplumun kaynaşması", "Rum delikanlısı", "Feride'nin çocukluğu", "Dul bir kadının yası"},
        {"Aşağıdaki cümlelerin hangisinde büyük harf yanlış kullanılmıştır ?", "İleride Matematik Öğretmeni olmak istiyor.", "Yazları İzmire gidiyor.", "Üç yıldır Şirinevlerde oturuyor.", "Salim 24 Şubatta doğmuş."},
        {"Aşağıdaki kelimelerin hangisinin yazımı doğrudur ?", "pek az", "hiçkimse", "bir az", "herşey"},
};

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

    countLabel = findViewById(R.id.countLabel);
    questionImage = findViewById(R.id.questionImage);
    answerBtn1 = findViewById(R.id.answerBtn1);
    answerBtn2 = findViewById(R.id.answerBtn2);
    answerBtn3 = findViewById(R.id.answerBtn3);
    answerBtn4 = findViewById(R.id.answerBtn4);
    textView = findViewById(R.id.textView);
    // Create quizArray from quizData.
    for (int i = 0; i < quizData.length; i++) {
        // Prepare array.
        ArrayList<String> tmpArray = new ArrayList<>();
        tmpArray.add(quizData[i][0]); // Image Name
        tmpArray.add(quizData[i][1]); // Right Answer
        tmpArray.add(quizData[i][2]); // Choice1
        tmpArray.add(quizData[i][3]); // Choice2
        tmpArray.add(quizData[i][4]); // Choice3

        // Add tmpArray to quizArray.
        quizArray.add(tmpArray);
    }

    showNextQuiz();
}

public void showNextQuiz() {

    // Update quizCountLabel.
    countLabel.setText("Soru:" + quizCount);

    // Generate random number between 0 and 4 (quizArray's size -1)
    Random random = new Random();
    int randomNum = random.nextInt(quizArray.size());

    // Pick one quiz set.
    ArrayList<String> quiz = quizArray.get(randomNum);

    // Set Image and Right Answer.
    // Array format: {"Image Name", "Right Answer", "Choice1", "Choice2", "Choice3"}
    textView.setText(quiz.get(0));

    rightAnswer = quiz.get(1);

    // Remove "Image Name" from quiz and shuffle choices.
    quiz.remove(0);
    Collections.shuffle(quiz);

    // Set choices.
    answerBtn1.setText(quiz.get(0));
    answerBtn2.setText(quiz.get(1));
    answerBtn3.setText(quiz.get(2));
    answerBtn4.setText(quiz.get(3));

    // Remove this quiz from quizArray.
    quizArray.remove(randomNum);

}

public void checkAnswer(View view) {

    // Get pushed button.
    Button answerBtn = findViewById(view.getId());
    String btnText = answerBtn.getText().toString();

    String alertTitle;

    if (btnText.equals(rightAnswer)) {
        // Correct!!
        alertTitle = "Doğru!";
        rightAnswerCount++;

    } else {
        // Wrong
        alertTitle = "Yanlış...";
    }

    // Create Dialog.
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(alertTitle);
    builder.setMessage("Cevap : " + rightAnswer);
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            if (quizArray.size() < 1) {
                // quizArray is empty.
                showResult();

            } else {
                quizCount++;
                showNextQuiz();
            }
        }
    });
    builder.setCancelable(false);
    builder.show();
}

public void showResult() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Sonuç");
    builder.setMessage(rightAnswerCount + " / 5");
    builder.setPositiveButton("Tekrar Dene", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            recreate();
        }
    });
    builder.setNegativeButton("Çıkış", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            finish();
        }
    });
    builder.show();
}
}
java android android-studio
1个回答
1
投票

您可以使用此:

If(rightAnswer){

    // If you're in an activity:
    answerBtn1.setBackgroundColor(getResources().getColor(R.color.green));
    // OR, if you're not: 
    answerBtn1.setBackgroundColor(Button11.getContext().getResources().getColor(R.color.green));

}

或者,也可以使用:

if(rightAnswer){
answerBtn1.setBackgroundColor(Color.GREEN); // From android.graphics.Color
}
© www.soinside.com 2019 - 2024. All rights reserved.