android开发---简单答题器(JAVA)

android开发---简单答题器(JAVA)_第1张图片android开发---简单答题器(JAVA)_第2张图片

android开发---简单答题器(JAVA)_第3张图片

android开发---简单答题器(JAVA)_第4张图片

根据《android编程权威指南》一书的前六章 写的代码

首先MainActivity.java

package com.example.test01;

import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModelProvider;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private Button trueButton;
    private Button falseButton;

    private Button nextButton;
    private Button pirrButton;
    private TextView questionTextView;

    private String TAG="MainActivity";

    public static final String EXTRA_PARAM="extre_param";
    private List questionBank = new ArrayList<>();
    private int currentIndex = 0;
    private Button cheatButton;

    private int REQUEST=0;

    private void updateQuestion() {

        Question[] array = questionBank.toArray(new Question[currentIndex]);
        int questionTextResId = array[currentIndex].textResId;

        questionTextView.setText(questionTextResId);

    }

    private void checkAnswer(boolean userAnswer) {
        Question[] array = questionBank.toArray(new Question[currentIndex]);
         boolean correctAnswer = array[currentIndex].answer;

        if (userAnswer == correctAnswer)
            Toast.makeText(this, R.string.correct_toast, Toast.LENGTH_SHORT).show();
        else Toast.makeText(this, R.string.incorrect_toast, Toast.LENGTH_SHORT).show();
    }




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


        Log.d(TAG,"onCreate(Bundle?)called");
        trueButton = findViewById(R.id.true_button);
        falseButton = findViewById(R.id.false_button);
        nextButton = findViewById(R.id.next_button);
        pirrButton = findViewById(R.id.pir_button);
        cheatButton = findViewById(R.id.cheat_button);

        questionTextView = findViewById(R.id.question_text_view);

        questionBank.add(new Question(R.string.question_australia, true));
        questionBank.add(new Question(R.string.question_asia, false));
        questionBank.add(new Question(R.string.question_africa, true));
        questionBank.add(new Question(R.string.question_oceans, false));

        trueButton.setOnClickListener(new View.OnClickListener() {
             @Override
            public void onClick(View v) {

                 checkAnswer(true);
            }

        });
        falseButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                checkAnswer(false);
            }
        });
        nextButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                currentIndex = (currentIndex + 1) % questionBank.size();
                if(currentIndex<1)currentIndex=1;

                updateQuestion();

            }
        });
        cheatButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent();
                intent.setClass(MainActivity.this, CheatActivity.class);
                Question[] array = questionBank.toArray(new Question[currentIndex]);
                boolean correctAnswer = array[currentIndex].answer;

                intent.putExtra(EXTRA_PARAM,correctAnswer);

                startActivity(intent);
            }
        });
        pirrButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              currentIndex = (currentIndex - 1) %  questionBank.size();
                if(currentIndex<1)currentIndex=1;
                updateQuestion();

            }
        });
        updateQuestion();


    }
    protected void onStart(){
        super.onStart();
        Log.d(TAG,"onstart() called");
    }
}

CheatActivity.java

package com.example.test01;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class CheatActivity extends AppCompatActivity {

    public  String EXTRA_ANSWER_IS_TRUE="com.bignerdranch.android.geoquiz.answer_is_true";
    String EXTRA="com.bignerdranch.android.geoquiz.answer_is_true";
    private boolean answerIsTrue=false;
    private Intent intent;
    private Button showAnswerButton;
    private TextView answerTextView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        intent=new Intent();
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cheat);
        answerIsTrue = intent.getBooleanExtra(EXTRA_ANSWER_IS_TRUE, false);
        showAnswerButton=findViewById(R.id.show_answer_button);
        answerTextView=findViewById(R.id.answer_text_view);
        showAnswerButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent data=getIntent();
                boolean a=data.getBooleanExtra(MainActivity.EXTRA_PARAM,false);

                if (a){
                    answerTextView.setText("ture");
                }
                else answerTextView.setText("false");
            }
        });

    }

}

Question.java

package com.example.test01;

//public class Question {
//}

import androidx.annotation.StringRes;
class Question{
    @StringRes
    int textResId;
    boolean answer;
    public Question(int textResId,boolean answer){
        this.textResId=textResId;
        this.answer=answer;
    }
}

自己找一个next.png

activity_cheat.xml



   
    
    

activity_main.xml




    
    
        

AndroidManifest.xml(我这个project是test01)




    
        
        
            
                

                
            
        
    

android开发慢慢长路,去日苦多,加油吧

你可能感兴趣的:(android,java,开发语言)