Flutter - Dart

Тест - 1 сұрақ - 4 жауап - дұрыс / дұрыс емес

main.dart

				
					import 'package:flutter/material.dart';

class QuizApp extends StatefulWidget {
  @override
  _QuizAppState createState() => _QuizAppState();
}

class _QuizAppState extends State<QuizApp> {
  int _currentQuestionIndex = 0;
  final List<Question> _questions = [
    Question(
      'Қазақстан Республикасындағы мемлекеттiк тiл?',
      ['орыс тілі', 'қазақ тілі', 'өзбек тілі', 'қытай тілі'],
      1,
    ),
    Question(
      'Қандай программалық тілдер арқылы мобильді қосымша жасауға болады?',
      ['html,css', 'sass, c#', 'java, swift', 'ағылшын, қытай'],
      2,
    ),
    Question(
      'Күн жүйесінде неше планета бар?',
      ['3', '5', '8', '9'],
      3,
    ),
  ];

  bool _showResult = false;
  bool _isAnsweredCorrectly = false;

  void _checkAnswer(int selectedOption) {
    setState(() {
      _showResult = true;
      _isAnsweredCorrectly =
          selectedOption == _questions[_currentQuestionIndex].correctAnswer;
    });
  }

  void _nextQuestion() {
    setState(() {
      _currentQuestionIndex++;
      if (_currentQuestionIndex >= _questions.length) {
        _currentQuestionIndex = 0;
      }
      _showResult = false;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Тест'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(
                _questions[_currentQuestionIndex].questionText,
                style: TextStyle(fontSize: 20),
              ),
              SizedBox(height: 20),
              for (var i = 0;
                  i < _questions[_currentQuestionIndex].options.length;
                  i++)
                ElevatedButton(
                  onPressed: () => _checkAnswer(i),
                  child: Text(_questions[_currentQuestionIndex].options[i]),
                ),
              SizedBox(height: 20),
              if (_showResult)
                Text(
                  _isAnsweredCorrectly ? 'Дұрыс!' : 'Дұрыс емес!',
                  style: TextStyle(fontSize: 20),
                ),
              ElevatedButton(
                onPressed: _nextQuestion,
                child: Text('Келесі сұрақ'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class Question {
  final String questionText;
  final List<String> options;
  final int correctAnswer;

  Question(this.questionText, this.options, this.correctAnswer);
}

void main() {
  runApp(QuizApp());
}