Как выполнить действие, если пользователь ответит на 10 вопросов в приложении викторины - PullRequest
0 голосов
/ 19 января 2019

Я пишу простое приложение-викторину, похожее на популярное приложение Кто хочет стать миллионером? Все шло хорошо, пока я не дошел до точки, когда я не смог выполнить действие после того, как пользователь ответил на десятый вопрос. Я действительно хочу, чтобы после того, как пользователь ответил на 10 вопросов, я отображаю сообщение о том, что они достигли 10-го вопроса, но я не могу этого сделать.

public class MainActivity extends Activity implements View.OnClickListener{
    TextToSpeech t1;

    Button btn_one, btn_two, btn_three, btn_four;
    TextView tv_question;
    private Question question = new Question();   
    private String answer;
    private int questionLength = question.questions.length;  
    Random random;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); 
        random = new Random();    
        btn_one = (Button)findViewById(R.id.btn_one);
        btn_one.setOnClickListener(this);
        btn_two = (Button)findViewById(R.id.btn_two);
        btn_two.setOnClickListener(this);
        btn_three = (Button)findViewById(R.id.btn_three);
        btn_three.setOnClickListener(this);
        btn_four = (Button)findViewById(R.id.btn_four);
        btn_four.setOnClickListener(this);    
        tv_question = (TextView)findViewById(R.id.tv_question);
        NextQuestion(random.nextInt(questionLength));
        final String input = tv_question.getText().toString()    
    }

    public void onPause() {
        if (t1 != null) {
            t1.stop();
            t1.shutdown();
        }
        super.onPause();
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_one:
                if(btn_one.getText() == answer){
                    Toast.makeText(MainActivity.this, "You Are Correct", Toast.LENGTH_SHORT).show();
                    NextQuestion(random.nextInt(questionLength));
                }else{
                    GameOver();
                }

                break;

            case R.id.btn_two:
                if(btn_two.getText() == answer){
                    Toast.makeText(MainActivity.this, "You Are Correct", Toast.LENGTH_SHORT).show();
                    NextQuestion(random.nextInt(questionLength));
                }else{
                    GameOver();
                }

                break;

            case R.id.btn_three:
                if(btn_three.getText() == answer){
                    Toast.makeText(MainActivity.this, "You Are Correct", Toast.LENGTH_SHORT).show();
                    NextQuestion(random.nextInt(questionLength));
                }else{
                    GameOver();
                }

                break;

            case R.id.btn_four:
                if(btn_four.getText() == answer){
                    Toast.makeText(MainActivity.this, "You Are Correct", Toast.LENGTH_SHORT).show();
                    NextQuestion(random.nextInt(questionLength));
                }else{
                    GameOver();
                }

                break;
        }
    }

    private void GameOver(){
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this);
        alertDialogBuilder
                .setMessage("Game Over")
                .setCancelable(false)
                .setPositiveButton("New Game", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        startActivity(new Intent(getApplicationContext(), MainActivity.class));
                    }
                })
                .setNegativeButton("Exit", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        System.exit(0);
                    }
                });
        alertDialogBuilder.show();

    }

    private void NextQuestion(int num){

        tv_question.setText(question.getQuestion(num));
        btn_one.setText(question.getchoice1(num));
        btn_two.setText(question.getchoice2(num));
        btn_three.setText(question.getchoice3(num));
        btn_four.setText(question.getchoice4(num));    
        answer = question.getCorrectAnswer(num);
        final String input = tv_question.getText().toString();

        t1 = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int status) {
                if (status != TextToSpeech.ERROR) {
                    t1.setLanguage(Locale.UK);
                    Toast.makeText(getApplicationContext(), input, Toast.LENGTH_SHORT).show();
                    t1.speak(input, TextToSpeech.QUEUE_FLUSH, null);
                }
            }
        });
        visible();    
    }

    public void ftft(View v) {
       Button Lftft = (Button)findViewById(R.id.button);
       Lftft.setEnabled(false);

        if(btn_one.getText() == answer){
            btn_two.setVisibility(View.INVISIBLE);
            btn_three.setVisibility(View.INVISIBLE);

        }else{

        }
        if(btn_two.getText() == answer){
            btn_three.setVisibility(View.INVISIBLE);
            btn_four.setVisibility(View.INVISIBLE);

        }else{

        }
        if(btn_three.getText() == answer){
            btn_one.setVisibility(View.INVISIBLE);
            btn_two.setVisibility(View.INVISIBLE);

        }else{

        }
        if(btn_four.getText() == answer){
            btn_three.setVisibility(View.INVISIBLE);
            btn_one.setVisibility(View.INVISIBLE);

        }else{

        }   
    }
    private void visible() {

        btn_one.setVisibility(View.VISIBLE);
        btn_two.setVisibility(View.VISIBLE);
        btn_three.setVisibility(View.VISIBLE);
        btn_four.setVisibility(View.VISIBLE);
    }
    public void phone(View v) {

        Button phone = (Button)findViewById(R.id.button2);
        phone.setEnabled(false);
      TextView  lifeline = (TextView)findViewById(R.id.textView);
        Toast.makeText(getApplicationContext(), "The answer is"+answer, Toast.LENGTH_SHORT).show();
    }
    public void Audi(View v) {

        Button phone = (Button)findViewById(R.id.button3);
        phone.setEnabled(false);
        TextView  lifeline = (TextView)findViewById(R.id.textView);
        Toast.makeText(getApplicationContext(), "The answer is"+answer, Toast.LENGTH_SHORT).show();
    }
}

Ниже приведен мой код активности вопроса "

public class Question {

    public String questions[] = {
            "Which is a Programming Language?",
            "In COMAL language program, after name of procedure parameters must be in?",
            "Programming language COBOL works best for use in?",
            "Are you an M or an m?"
    };

    public String choices[][] = {
            {"HTML", "CSS", "Vala", "PHP"},
            {"Punction Marks", "Back-Slash", "Brackets", "Semi Colon"},
            {"Siemens Applications", "Student Applications", "Social Applications", "Commercial Applications"},
            {"M", "mumu", "SG", "Map"}
    };

    public String correctAnswer[] = {
        "PHP",
        "Brackets",
        "Commercial Applications",
        "M"
    };

    public String getQuestion(int a){
        String question = questions[a];
        return question;
    }

    public String getchoice1(int a){
        String choice = choices[a][0];
        return choice;
    }

    public String getchoice2(int a){
        String choice = choices[a][1];
        return choice;
    }

    public String getchoice3(int a){
        String choice = choices[a][2];
        return choice;
    }

    public String getchoice4(int a){
        String choice = choices[a][3];
        return choice;
    }

    public String getCorrectAnswer(int a){
        String answer = correctAnswer[a];
        return answer;
    }
}

Ответы [ 2 ]

0 голосов
/ 20 января 2019

В MainActivity: -

Добавление членов класса: -

int question_limit = 10;
int question_count = 0;

Добавление нового метода

private void QuestionTen() {
    Toast.makeText(getApplicationContext(),"You have reached question 10.",Toast.LENGTH_SHORT);
}

Добавление строки в метод NextQuestion, например: -

if (question_count++ == question_limit) QuestionTen();
0 голосов
/ 19 января 2019

Вы можете добавить счетчик

Int counter = 0;

Как только пользователь ответил на вопрос, увеличьте счетчик.
Затем вы проверяете счетчик> 10 Делай что хочешь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...