LAYOUT
soalsoal.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="50dip"
android:background="#999999" >
<TableLayout
android:id="@+id/TableLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#fff" >
<TableRow
android:id="@+id/TableRow04"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/myGambar"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerHorizontal="true"
android:src="@drawable/user" />
</TableRow>
<TableRow
android:id="@+id/TableRow00"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/txtTanya"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1.Apakah Anda mengalami gejala Pusing2" />
</TableRow>
<RadioGroup
android:id="@+id/RadioGroup01"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/radA"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A. Pilihan A"
android:textColor="#000" >
</RadioButton>
<RadioButton
android:id="@+id/radB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B. Pilihan B"
android:textColor="#000" >
</RadioButton>
<RadioButton
android:id="@+id/radC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C. Pilihan C"
android:textColor="#000" >
</RadioButton>
<RadioButton
android:id="@+id/radD"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="D. Pilihan D"
android:textColor="#000" >
</RadioButton>
</RadioGroup>
<TableRow
android:id="@+id/TableRow02"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/txtTanyaKe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pertanyaan ke-1" />
</TableRow>
</TableLayout>
</ScrollView>
</RelativeLayout>
------------------------------------------------------------
Soal_soal.java
package com.example.soalsoal;
import java.util.Timer;
import java.util.TimerTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Handler.Callback;
import java.util.Calendar;
import android.media.MediaPlayer;
import android.app.Activity;
import android.app.AlertDialog;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.TextView;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
public class SoalActivity extends Activity {
int seconds = 0;
int ike=0;
MediaPlayer mp;
int[] arRandom;
long starttime = 0;
Timer timer = new Timer();
myDbHelper helper = null;
RadioButton radA, radB, radC, radD;
String sNama = "", sUsia = "", sJk = "", sCatatan = "";
int ke = 0, jumsoal = 10, jumBenar = 0;
int jd = 10;
String[] arr_idsoal;
String[] arr_pertanyaan;
String[] arr_jawabA;
String[] arr_jawabB;
String[] arr_jawabC;
String[] arr_jawabD;
String[] arr_jawabBenar;
int[] arr_gambar;
int[] arr_suara;
ImageView imgGambar;
TextView txtTanya, txtTanyake;
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.soal_layout);
helper = new myDbHelper(this);
Intent i = this.getIntent();
sNama = i.getStringExtra("nama");
sJk = i.getStringExtra("jk");
sUsia = i.getStringExtra("usia");
callData();
bacaRandom();
txtTanya =
(TextView) findViewById(R.id.txtTanya);
txtTanyake =
(TextView) findViewById(R.id.txtTanyaKe);
imgGambar =
(ImageView) findViewById(R.id.myGambar);
radA
= (RadioButton) findViewById(R.id.radA);
radA.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View
v) {
seconds = 0;
cekJawaban("A");
ke = ke + 1;
if (ke >= jumsoal) {
selesai();
} else {
lihat();
}
}
});
radB = (RadioButton)
findViewById(R.id.radB);
radB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View
v) {
seconds = 0;
cekJawaban("B");
ke = ke + 1;
if (ke >= jumsoal) {
selesai();
} else {
lihat();
}
}
});
radC = (RadioButton)
findViewById(R.id.radC);
radC.setOnClickListener(new View.OnClickListener() {
@Override
public
void onClick(View v) {
seconds = 0;
cekJawaban("C");
ke = ke + 1;
if (ke >= jumsoal) {
selesai();
} else {
lihat();
}
}
});
radD = (RadioButton)
findViewById(R.id.radD);
radD.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View
v) {
seconds = 0;
cekJawaban("D");
ke = ke + 1;
if (ke >= jumsoal) {
selesai();
} else {
lihat();
}
}
});
lihat();
}
void cekJawaban(String pil) {
if (arr_jawabBenar[ike].equals(pil)) {
jumBenar = jumBenar + 10;
sCatatan = sCatatan + "Soal-" +
(ke +
1) + " Benar,";
} else {
sCatatan = sCatatan + "Soal-" +
(ke +
1) + " Salah,";
}
if (mp.isPlaying()) {
mp.pause();
mp.stop();
}
try {
mp.pause();
mp.stop();
} catch (Exception ee) {
}
}
void bacaRandom() {
arRandom = uniqueRandomArray(jd);
for (int i = 0; i < jd; i++) {
Log.v("Rnd", i + "." + arRandom[i]);
}
}
public static int[]
uniqueRandomArray(int n) {
int[] A = new int[n];
for (int i = 0; i < A.length;) {
if (i == A.length) {
break;
}
int b = (int) (Math.random()
* n) + 1;
if (f(A, b) == false) {
A[i++] = b;
}
}
return A;
}
public static boolean f(int[] A, int n) {
for (int i = 0; i < A.length; i++) {
if (A[i] == n) {
return true;
}
}
return false;
}
void lihat() {
radA.setChecked(false);
radB.setChecked(false);
radC.setChecked(false);
radD.setChecked(false);
ike = arRandom[ke] - 1;
Log.v("Random",
ke +
"=" + ike + "");
txtTanya.setText((ke + 1) + "." + arr_pertanyaan[ike]);
radA.setText(arr_jawabA[ike]);
radB.setText(arr_jawabB[ike]);
radC.setText(arr_jawabC[ike]);
radD.setText(arr_jawabD[ike]);
txtTanyake.setText("Pertanyaan ke " +
(ke +
1) + " dari " +
jumsoal
+ " pertanyaan");
imgGambar.setImageResource(arr_gambar[ike]);
mp = MediaPlayer.create(this, arr_suara[ike]);
if (!mp.isPlaying()) {
mp.start();
}
final Handler h = new Handler(new Callback() {
@Override
public boolean handleMessage(Message
msg) {
long millis = System.currentTimeMillis()
- starttime;
seconds = (int) (millis / 1000);
if (seconds >= 10) { // lama waktunya per soal 10 detik
cekJawaban("?");
ke = ke + 1;
if (ke >= jumsoal) {
seconds = 0;
selesai();
try {
timer.cancel();
timer.purge();
} catch (Exception ee) {
}
} else {
seconds = 0;
lihat();
}
}
return false;
}
});
class firstTask extends TimerTask {
@Override
public void run() {
h.sendEmptyMessage(0);
}
}
;
starttime = System.currentTimeMillis();
timer.schedule(new firstTask(), 0, 1000);
}
public void selesai()
{
new AlertDialog.Builder(this).setTitle("NILAI ANDA")
.setMessage(jumBenar + " Point")
.setNeutralButton("Coba Lagi",
new OnClickListener()
{
public void onClick(DialogInterface
dlg, int sumthin) {
Calendar cal =
Calendar.getInstance();
int jam = cal.get(Calendar.HOUR);
int menit =
cal.get(Calendar.MINUTE);
int detik =
cal.get(Calendar.SECOND);
int tgl = cal.get(Calendar.DATE);
int bln = cal.get(Calendar.MONTH);
int thn = cal.get(Calendar.YEAR);
String stgl = String.valueOf(tgl)
+ "-"
+ String.valueOf(bln) + "-"
+ String.valueOf(thn);
String sjam =
String.valueOf(jam) + ":"
+
String.valueOf(menit) + ":"
+ String.valueOf(detik);
helper.insertDb(sNama, sUsia, sJk, jumBenar + "", stgl
+ " " + sjam, sCatatan);
finish();
try {
timer.cancel();
timer.purge();
} catch (Exception ee) {
}
finish();
}
}).show();
}
public void keluarYN()
{
AlertDialog.Builder ad = new AlertDialog.Builder(SoalActivity.this);
ad.setMessage("Apakah anda yakin ingin kembali?");
ad.setPositiveButton("YA", new OnClickListener() {
@Override
public void onClick(DialogInterface
dialog, int which) {
if (mp.isPlaying()) {
mp.pause();
mp.stop();
}
try {
mp.pause();
mp.stop();
} catch (Exception ee) {
}
finish();
}
});
ad.setNegativeButton("TIDAK",
new OnClickListener()
{
public void onClick(DialogInterface
arg0, int arg1) {
}
});
ad.show();
}
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
keluarYN();
timer.cancel();
;
return true;
}
return super.onKeyDown(keyCode,
event);
}
void callData() {
jd = 10;
arr_idsoal = new String[jd];
arr_pertanyaan =
new String[jd];
arr_jawabA = new String[jd];
arr_jawabB = new String[jd];
arr_jawabC = new String[jd];
arr_jawabD = new String[jd];
arr_jawabBenar =
new String[jd];
arr_gambar = new int[jd];
arr_suara = new int[jd];
// soal-soal
arr_idsoal[0] = "S01";
arr_pertanyaan[0] = " Rumah Adat Dari Provinsi Manakah ini?";
arr_jawabA[0] = "A. Aceh";
arr_jawabB[0] = "B. Jambi";
arr_jawabC[0] = "C. Bengkulu";
arr_jawabD[0] = "D. DKI Jakarta";
arr_jawabBenar[0] = "A";
arr_gambar[0] =
R.drawable.r_krong_bade;
arr_suara[0] = R.raw.button_song;
arr_idsoal[1] = "S02";
arr_pertanyaan[1] = " Alat Musik Berasal Dari Provinsi Manakah ini?";
arr_jawabA[1] = "A. Nusa Tenggara Timur";
arr_jawabB[1] = "B. Nusa Tenggara Barat";
arr_jawabC[1] = "C. Banten";
arr_jawabD[1] = "D. Jawa Tengah";
arr_jawabBenar[1] = "C";
arr_gambar[1] =
R.drawable.a_gendang_banten;
arr_suara[1] = R.raw.button_song;
arr_idsoal[2] = "S03";
arr_pertanyaan[2] = " Apakah Nama Lagu Daerah ini?";
arr_jawabA[2] = "A. Bebilin";
arr_jawabB[2] = "B. Potong Bebek Angsa";
arr_jawabC[2] = "C. Bindhe Biluhuta";
arr_jawabD[2] = "D. Cangget Agung";
arr_jawabBenar[2] = "D";
arr_gambar[2] = R.drawable.ic_lagu;
arr_suara[2] = R.raw.cangget_agung;
arr_idsoal[3] = "S04";
arr_pertanyaan[3] = " Pakaian Adat Berasal Dari Provinsi Manakah ini?";
arr_jawabA[3] = "A. DKI
Jakarta";
arr_jawabB[3] = "B. Papua";
arr_jawabC[3] = "C. Kalimantan Tengah";
arr_jawabD[3] = "D. Jambi";
arr_jawabBenar[3] = "D";
arr_gambar[3] =
R.drawable.p_melayu_jambi;
arr_suara[3] = R.raw.button_song;
arr_idsoal[4] = "S05";
arr_pertanyaan[4] = " Apakah Nama Pakaian Adat Daerah ini?";
arr_jawabA[4] = "A. Manteren Lamo";
arr_jawabB[4] = "B. Cele";
arr_jawabC[4] = "C. Sangkarut";
arr_jawabD[4] = "D. Ulee Balang";
arr_jawabBenar[4] = "D";
arr_gambar[4] =
R.drawable.p_ulee_balang;
arr_suara[4] = R.raw.button_song;
arr_idsoal[5] = "S06";
arr_pertanyaan[5] = " Lagu Daerah Berasal Dari Provinsi Manakah ini?";
arr_jawabA[5] = "A. Jambi";
arr_jawabB[5] = "B. DKI Jakarta";
arr_jawabC[5] = "C. Riau";
arr_jawabD[5] = "D. Nusa Tenggara Barat";
arr_jawabBenar[5] = "C";
arr_gambar[5] = R.drawable.ic_lagu;
arr_suara[5] = R.raw.soleram;
arr_idsoal[6] = "S07";
arr_pertanyaan[6] = " Apakah Nama Rumah Adat ini?";
arr_jawabA[6] = "A. Rumah Lamin";
arr_jawabB[6] = "B. Rumah Betang";
arr_jawabC[6] = "C. Rumah Kebaya";
arr_jawabD[6] = "D. Rumah Kasepuhan";
arr_jawabBenar[6] = "C";
arr_gambar[6] = R.drawable.r_kebaya;
arr_suara[6] = R.raw.button_song;
arr_idsoal[7] = "S08";
arr_pertanyaan[7] = " Rumah Adat Dari Provinsi Manakah ini?";
arr_jawabA[7] = "A. Sumatera Barat";
arr_jawabB[7] = "B. Banten";
arr_jawabC[7] = "C. Maluku";
arr_jawabD[7] = "D. Papua Barat";
arr_jawabBenar[7] = "D";
arr_gambar[7] =
R.drawable.r_kaki_seribu;
arr_suara[7] = R.raw.button_song;
arr_idsoal[8] = "S09";
arr_pertanyaan[8] = " Apakah Nama Alat Musik Daerah ini?";
arr_jawabA[8] = "A. Kolintang";
arr_jawabB[8] = "B. Tifa";
arr_jawabC[8] = "C. Angklung";
arr_jawabD[8] = "D. Tehyan";
arr_jawabBenar[8] = "A";
arr_gambar[8] =
R.drawable.a_kolintang;
arr_suara[8] = R.raw.button_song;
arr_idsoal[9] = "S10";
arr_pertanyaan[9] = " Alat Musik Dari Provinsi Manakah ini?";
arr_jawabA[9] = "A. Kalimantan Utara";
arr_jawabB[9] = "B. Kalimantan Tengah";
arr_jawabC[9] = "C. Maluku";
arr_jawabD[9] = "D. Maluku Utara";
arr_jawabBenar[9] = "A";
arr_gambar[9] = R.drawable.a_babun;
arr_suara[9] = R.raw.button_song;
}
}
---------------------------------------------------------------------------------------------------------------
Catatan
Di dalam soal tersebut sudah Include :
1. random soal
2. timer (persoal 10 sec) lalu benar atau salah langsung next ke soal
berikutnya dan hasil akhir save ke SQL LITE, dan mendapatkan poin dari jumlah
benar soal +10
3. Rasio button berbunyi ketika di klik
Untuk lokasi Suara / musik di letakkan pada folder (res/raw)
Untuk Lokasi Gambar di lekan pada folde (Drawable)
-------------------Thanks for all--------------------------
maaf baru di update ...
EmoticonEmoticon