พอดีผมสร้างแอปข้อสอบ จาก android studio ทำแอปแบบทดสอบและทำระบบ random ข้อสอบ ด้วยครับแต่พอลันแอปออกมาแล้ว
แอป random ข้อสอบออกมาข้อเดิม ผมอยากทำให้มันไม่ซ้ำข้อต้องทำยังไงครับ และถ้าข้อสอยหมดแล้วให้ส่งไปหน้าใหม่ครับต้องใส่โค้ดเพิ่มตรงใหนครับ
โค้ด
หน้า ScienceQuizActivity.class
package com.sayamphoo.quizss;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.util.Random;
public class ScienceQuizActivity extends AppCompatActivity {
Button button1, button2, button3, button4;
TextView jos, scroll;
private QuizScience mQuizScience = new QuizScience();
private String mButton;
private int mScroll = 0;
private int mQuizScienceLenght = mQuizScience.mQuizScience.length;
Random r;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_science_quiz);
r = new Random();
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);
jos = (TextView) findViewById(R.id.jos);
scroll = (TextView) findViewById(R.id.scroll);
scroll.setText("8tcoo " + mScroll);
updateQuizScience(r.nextInt(mQuizScienceLenght));
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(button1.getText() == mButton){
mScroll++;
scroll.setText("8tcoo " + mScroll);
updateQuizScience(r.nextInt(mQuizScienceLenght));
}else {
gameover();
}
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(button2.getText() == mButton){
mScroll++;
scroll.setText("8tcoo " + mScroll);
updateQuizScience(r.nextInt(mQuizScienceLenght));
}else {
gameover();
}
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(button3.getText() == mButton){
mScroll++;
scroll.setText("8tcoo " + mScroll);
updateQuizScience(r.nextInt(mQuizScienceLenght));
}else {
gameover();
}
}
});
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(button4.getText() == mButton){
mScroll++;
scroll.setText("8tcoo " + mScroll);
updateQuizScience(r.nextInt(mQuizScienceLenght));
}else {
gameover();
}
}
});
}
private void updateQuizScience(int num) {
jos.setText(mQuizScience.gteQuizScience(num));
button1.setText(mQuizScience.gteChoicea1(num));
button2.setText(mQuizScience.gteChoicea2(num));
button3.setText(mQuizScience.gteChoicea3(num));
button4.setText(mQuizScience.gteChoicea4(num));
mButton = mQuizScience.getCheap(num);
}
private void gameover() {
AlertDialog.Builder alerDialogBuilder = new AlertDialog.Builder(ScienceQuizActivity.this);
alerDialogBuilder
.setMessage("จบเกม" + mScroll + "po")
.setMessage("fal86")
.setPositiveButton("new",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
startActivity(new Intent(getApplicationContext(), ScienceQuizActivity.class));
}
})
.setNegativeButton("new",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
finish();
}
});
}
}
หน้า QuizScience.class
package com.sayamphoo.quizss;
public class QuizScience {
public String mQuizScience[] = {
"เพลต เทโทนิค (Plate tectonic) คืออะไร?",
"เทือกเขาแอนดิสอยูในทวีปใด",
"พันเจีย (Pangea) แปลว่า",
"แผ่นดินใหวมักเกิดในบริเวลใดมากที่สุด",
"ข้อใดคือคลื่นแผ่นดินใหว",
};
public String mChoicea[][] = {
{"เทคนิคการวัดเพลต", "เทติคธรณีภาค", "ทฤาฎีการเปลียนแปลงสัณฐานแผนธณีภาค", "ธรณวิทยา"},
{"อเมริกา", "แอฟริกา", "อเมริกา", "ออสเตรเลีย"},
{"แผ่รชนดินรวม", "แผ่นดินทั้งหมด", "แผ่นดินเชื่อมต่อกันเป็นผืนเดียว", "แผ่นดินแยก"},
{"ในมหาสมุทร", "บนพื้นทวีป", "แนวเขตของการมุดตัว", "มเลทราย"},
{"คลื่น P", "คลื่น S", "คลื่นพื้นผิว", "คลื่น V",}
};
private String mCheap[] = {"เทคนิคการวัดเพลต", "อเมริกา", "แผ่รชนดินรวม", "ในมหาสมุทร", "คลื่น P"};
public String gteQuizScience(int a){
String quizscience = mQuizScience[a];
return quizscience;
}
public String gteChoicea1(int a){
String choicea = mChoicea[a][0];
return choicea;
}
public String gteChoicea2(int a){
String choicea = mChoicea[a][1];
return choicea;
}
public String gteChoicea3(int a){
String choicea = mChoicea[a][2];
return choicea;
}
public String gteChoicea4(int a){
String choicea = mChoicea[a][3];
return choicea;
}
public String getCheap(int a){
String cheap = mCheap[a];
return cheap;
}
}
หน้า activity_science_quiz.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="
http://schemas.android.com/apk/res/android"
xmlns:app="
http://schemas.android.com/apk/res-auto"
xmlns:tools="
http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context="com.sayamphoo.quizss.ScienceQuizActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="คะแนน"
android:textColor="#000"
android:textSize="20dp"
android:layout_alignBaseline="@+id/scroll"
android:layout_alignBottom="@+id/scroll"
android:layout_alignRight="@+id/scroll"
android:layout_alignEnd="@+id/scroll"
android:layout_marginRight="23dp"
android:layout_marginEnd="23dp" />
<TextView
android:id="@+id/scroll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="164dp"
android:layout_marginStart="164dp"
android:layout_marginTop="17dp"
android:text="0"
android:textColor="#000"
android:textSize="20dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/jos"
android:text="20"
android:textSize="15dp"/>
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_alignTop="@+id/button2"
android:layout_marginTop="49dp"
android:text="Button" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button4"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button3"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignStart="@+id/button3"
android:layout_marginBottom="113dp"
android:text="Button" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button3"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:text="Button" />
</RelativeLayout>
</LinearLayout>
พอดีผมสร้างแอปข้อสอบ จาก android studio ทำแอปแบบทดสอบและทำระบบ random ข้อสอบ ด้วยครับ
แอป random ข้อสอบออกมาข้อเดิม ผมอยากทำให้มันไม่ซ้ำข้อต้องทำยังไงครับ และถ้าข้อสอยหมดแล้วให้ส่งไปหน้าใหม่ครับต้องใส่โค้ดเพิ่มตรงใหนครับ
โค้ด
หน้า ScienceQuizActivity.class
package com.sayamphoo.quizss;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.util.Random;
public class ScienceQuizActivity extends AppCompatActivity {
Button button1, button2, button3, button4;
TextView jos, scroll;
private QuizScience mQuizScience = new QuizScience();
private String mButton;
private int mScroll = 0;
private int mQuizScienceLenght = mQuizScience.mQuizScience.length;
Random r;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_science_quiz);
r = new Random();
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);
jos = (TextView) findViewById(R.id.jos);
scroll = (TextView) findViewById(R.id.scroll);
scroll.setText("8tcoo " + mScroll);
updateQuizScience(r.nextInt(mQuizScienceLenght));
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(button1.getText() == mButton){
mScroll++;
scroll.setText("8tcoo " + mScroll);
updateQuizScience(r.nextInt(mQuizScienceLenght));
}else {
gameover();
}
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(button2.getText() == mButton){
mScroll++;
scroll.setText("8tcoo " + mScroll);
updateQuizScience(r.nextInt(mQuizScienceLenght));
}else {
gameover();
}
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(button3.getText() == mButton){
mScroll++;
scroll.setText("8tcoo " + mScroll);
updateQuizScience(r.nextInt(mQuizScienceLenght));
}else {
gameover();
}
}
});
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(button4.getText() == mButton){
mScroll++;
scroll.setText("8tcoo " + mScroll);
updateQuizScience(r.nextInt(mQuizScienceLenght));
}else {
gameover();
}
}
});
}
private void updateQuizScience(int num) {
jos.setText(mQuizScience.gteQuizScience(num));
button1.setText(mQuizScience.gteChoicea1(num));
button2.setText(mQuizScience.gteChoicea2(num));
button3.setText(mQuizScience.gteChoicea3(num));
button4.setText(mQuizScience.gteChoicea4(num));
mButton = mQuizScience.getCheap(num);
}
private void gameover() {
AlertDialog.Builder alerDialogBuilder = new AlertDialog.Builder(ScienceQuizActivity.this);
alerDialogBuilder
.setMessage("จบเกม" + mScroll + "po")
.setMessage("fal86")
.setPositiveButton("new",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
startActivity(new Intent(getApplicationContext(), ScienceQuizActivity.class));
}
})
.setNegativeButton("new",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
finish();
}
});
}
}
หน้า QuizScience.class
package com.sayamphoo.quizss;
public class QuizScience {
public String mQuizScience[] = {
"เพลต เทโทนิค (Plate tectonic) คืออะไร?",
"เทือกเขาแอนดิสอยูในทวีปใด",
"พันเจีย (Pangea) แปลว่า",
"แผ่นดินใหวมักเกิดในบริเวลใดมากที่สุด",
"ข้อใดคือคลื่นแผ่นดินใหว",
};
public String mChoicea[][] = {
{"เทคนิคการวัดเพลต", "เทติคธรณีภาค", "ทฤาฎีการเปลียนแปลงสัณฐานแผนธณีภาค", "ธรณวิทยา"},
{"อเมริกา", "แอฟริกา", "อเมริกา", "ออสเตรเลีย"},
{"แผ่รชนดินรวม", "แผ่นดินทั้งหมด", "แผ่นดินเชื่อมต่อกันเป็นผืนเดียว", "แผ่นดินแยก"},
{"ในมหาสมุทร", "บนพื้นทวีป", "แนวเขตของการมุดตัว", "มเลทราย"},
{"คลื่น P", "คลื่น S", "คลื่นพื้นผิว", "คลื่น V",}
};
private String mCheap[] = {"เทคนิคการวัดเพลต", "อเมริกา", "แผ่รชนดินรวม", "ในมหาสมุทร", "คลื่น P"};
public String gteQuizScience(int a){
String quizscience = mQuizScience[a];
return quizscience;
}
public String gteChoicea1(int a){
String choicea = mChoicea[a][0];
return choicea;
}
public String gteChoicea2(int a){
String choicea = mChoicea[a][1];
return choicea;
}
public String gteChoicea3(int a){
String choicea = mChoicea[a][2];
return choicea;
}
public String gteChoicea4(int a){
String choicea = mChoicea[a][3];
return choicea;
}
public String getCheap(int a){
String cheap = mCheap[a];
return cheap;
}
}
หน้า activity_science_quiz.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context="com.sayamphoo.quizss.ScienceQuizActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="คะแนน"
android:textColor="#000"
android:textSize="20dp"
android:layout_alignBaseline="@+id/scroll"
android:layout_alignBottom="@+id/scroll"
android:layout_alignRight="@+id/scroll"
android:layout_alignEnd="@+id/scroll"
android:layout_marginRight="23dp"
android:layout_marginEnd="23dp" />
<TextView
android:id="@+id/scroll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="164dp"
android:layout_marginStart="164dp"
android:layout_marginTop="17dp"
android:text="0"
android:textColor="#000"
android:textSize="20dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/jos"
android:text="20"
android:textSize="15dp"/>
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_alignTop="@+id/button2"
android:layout_marginTop="49dp"
android:text="Button" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button4"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button3"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignStart="@+id/button3"
android:layout_marginBottom="113dp"
android:text="Button" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button3"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:text="Button" />
</RelativeLayout>
</LinearLayout>