/
Kulechek
/
Lab_10
Обзор
Документация
Войти
/
Kulechek
/
Lab_10
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/src/main/java/com/example/map_quiz/QuizActivity.java
86 строк
3 KB
Temnikov Konstantin
lab11_2
25 май 2025, 14:15
25 май 2025, 14:15
8403174
Код
Авторство
О чём код?
package com.example.map_quiz; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import java.util.List; public class QuizActivity extends AppCompatActivity { private TextView questionText; private Button[] buttons; private int correctAnswerIndex; private DbHelper dbHelper; private Question currentQuestion; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_quiz); dbHelper = new DbHelper(this); questionText = findViewById(R.id.questionText); buttons = new Button[] { findViewById(R.id.btnA), findViewById(R.id.btnB), findViewById(R.id.btnC), findViewById(R.id.btnD) }; int id = getIntent().getIntExtra("QUESTION_ID", 1); loadQuestion(id); } private void loadQuestion(int id) { currentQuestion = dbHelper.getQuestionWithAnswers(id); if (currentQuestion == null) { questionText.setText("Вопрос не найден"); return; } questionText.setText(currentQuestion.text); List<Answer> answers = currentQuestion.answers; for (int i = 0; i < buttons.length; i++) { if (i < answers.size()) { buttons[i].setText(answers.get(i).text); buttons[i].setEnabled(true); buttons[i].setVisibility(View.VISIBLE); } else { buttons[i].setVisibility(View.GONE); } } correctAnswerIndex = currentQuestion.getCorrectAnswerIndex(); } public void onAnswerClick(View v) { int clicked = -1; for (int i = 0; i < buttons.length; i++) { if (v.getId() == buttons[i].getId()) clicked = i; // подсвечиваем правильный и неправильные buttons[i].setEnabled(false); if (i == correctAnswerIndex) { buttons[i].setBackgroundColor(Color.GREEN); } else { buttons[i].setBackgroundColor(Color.RED); } } new AlertDialog.Builder(this) .setTitle("Результат") .setMessage(clicked == correctAnswerIndex ? "Правильно!" : "Неверно!") .setPositiveButton("ОК", (d, w) -> finish()) .show(); } @Override protected void onDestroy() { dbHelper.close(); super.onDestroy(); } }