如何在Android中使用Array随机提问

时间:2019-01-15 16:26:00

标签: java android eclipse android-intent

请帮助我完成我的项目。我试着随机显示问题。 我必须首先在这里将问题提交到文件 Soalpilihan.java 中,并执行并回答并在文件 QuizGameActivity.java 中显示该问题。 如果我将问题数组保存在其他文件中并将问题放入其他文件并将其随机化,那么如何随机化问题。

这是代码 QuizGameActivity.java

package com.belajarbahasajerman;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class QuizGameActivity extends Activity implements OnClickListener {
    Button btnback;
    private MediaPlayer mp;
    private Uri uri;
    TextView tvSoal;
    Button OptionA, OptionB, OptionC;
    int skor=0;
    int arr;
    int x; 
    Boolean clicked1=false,clicked2=false,clicked3=false;
    String jawaban;

    Soalpilihan soalPG = new Soalpilihan();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.quizgame);

        btnback=(Button)findViewById(R.id.btnback3);
        uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.btn_klik);
        mp = MediaPlayer.create(this, uri);
        tvSoal = (TextView)findViewById(R.id.Soal);
        OptionA = (Button)findViewById(R.id.OptionA);
        OptionB = (Button)findViewById(R.id.OptionB);
        OptionC = (Button)findViewById(R.id.OptionC);

        setKonten();
        OptionA.setOnClickListener(this);
        OptionB.setOnClickListener(this);
        OptionC.setOnClickListener(this);

    }

    @Override
    public void onClick(View v){
        switch (v.getId()) {
            case R.id.OptionA:
                mp.start();
                if(OptionA.getText().toString().equals(jawaban)){
                    skor = skor + 10;
                    Toast.makeText(this, "Jawaban Benar", Toast.LENGTH_SHORT).show();
                    setKonten();
                }else{
                    Toast.makeText(this, "Jawaban Salah", Toast.LENGTH_SHORT).show();
                    setKonten();
                }
                break;
            case R.id.OptionB:
                mp.start();
                if(OptionB.getText().toString().equals(jawaban)){
                    skor = skor + 10;
                    Toast.makeText(this, "Jawaban Benar", Toast.LENGTH_SHORT).show();
                    setKonten();
                }else{
                    Toast.makeText(this, "Jawaban Salah", Toast.LENGTH_SHORT).show();
                    setKonten();
                }
                break;
            case R.id.OptionC:
                mp.start();
                if(OptionC.getText().toString().equals(jawaban)){
                    skor = skor + 10;
                    Toast.makeText(this, "Jawaban Benar", Toast.LENGTH_SHORT).show();
                    setKonten();
                }else{
                    Toast.makeText(this, "Jawaban Salah", Toast.LENGTH_SHORT).show();
                    setKonten();
                }
                break;
        }
    }

    public void setKonten(){
        arr = soalPG.pertanyaan.length;
        if(x >= arr){
            Intent i = new Intent(QuizGameActivity.this, HasilSkoring.class);
            i.putExtra("skorAkhir",skor);
            i.putExtra("activity","PilihanGanda");
            startActivity(i);
        }else{
            tvSoal.setText(soalPG.getPertanyaan(x));
            OptionA.setText(soalPG.getPilihanJawaban1(x));
            OptionB.setText(soalPG.getPilihanJawaban2(x));
            OptionC.setText(soalPG.getPilihanJawaban3(x));
            jawaban = soalPG.getJawabanBenar(x);

        }
        x++;
    }

}

这是代码 Soalpilihan.java

package com.belajarbahasajerman;

public class Soalpilihan {
    public String pertanyaan[] = 
        {" Bahasa Jerman 'Nama saya' adalah ",
         " Ada berapa huruf yang ada di bahasa Jerman ? ",
         " Angka tiga dalam bahasa Jerman yaitu ",
         " Ich bin ... Jahre alt adalah menyatakan tentang ",
         " Di bahasa Jerman mengucapkan selamat malam adalah ",
         " Ketika berpisah dengan seseorang, kamu harus mengatakan(dalam formal) ? ",
         " elf + vier adalah ",
         " Terima kasih dalam bahasa Jerman ",
         " Sechs, sieben, acht, ... lanjutannya adalah ",
         " Guten tag adalah ucapan pada saat ? ",
    };

    private String pilihjaw[][] = {
            {"Ich heiße","Ich komme","Ich reise mit"},
            {"26 huruf","28 huruf","30 huruf"},
            {"drei","thri","zwei"},
            {"Saya berasal","Nama saya","Umur saya"},
            {"Guten Tag","Gute Nacht","Guten Morgen"},
            {"Tschuss","Auf Wiedersehen","Gute bay"},
            {"15","14","16"},
            {"Bitte","Danke","Sankyu"},
            {"Zehn","Funf","Neun"},
            {"Selamat siang","Selamat malam","Selamat pagi"},
    };

    private String jawbenar[] = {
            "Ich heiße",
            "30 huruf",
            "drei",
            "Umur saya",
            "Gute Nacht",
            "Auf Wiedersehen",
            "15",
            "Danke",
            "Neun",
            "Selamat siang",
    };

    public String getPertanyaan(int x){
        String soal = pertanyaan[x];
        return soal;
    }

    public String getPilihanJawaban1(int x){
        String jawaban1 = pilihjaw[x][0];
        return jawaban1;
    }

    public String getPilihanJawaban2(int x){
        String jawaban2 = pilihjaw[x][1];
        return jawaban2;
    }

    public String getPilihanJawaban3(int x){
        String jawaban3 = pilihjaw[x][2];
        return jawaban3;
    }

    public String getJawabanBenar(int x){
        String jawaban = jawbenar[x];
        return jawaban;
    }
}

1 个答案:

答案 0 :(得分:0)

您有一些方法可以根据传入的数字获取字符串。

例如:

int random = (int)(Math.random() * 10 + 1);
String randomPertanyaan = getPertanyaan(random);

布尔帮助器

您将不得不尝试逻辑。

public boolean correctAnswer(int random, int answer){
    String randomPertanyaan = getPertanyaan(random);
    String getAnswers = getAnswers(random, answer);
    if (answer == //userinput) {
        return true;
    }
    return false;
}

getAnswers

public String getAnswers(int random, int answer){
    String getAnswer = pilihjaw[random][answer]; //random is the ROW for the question, answer is that ANSWER.
    return getAnswer;
}