Я работаю над приложением викторины, используя Retrofit
для анализа массива вопросов.Есть 10 вопросов, каждый вопрос имеет 4 варианта (переключатель), которые будут изменены, если нажата кнопка « next ».Пока кнопка нажата, она должна сохранить ответ пользователя и, если ответ правильный, оценка должна увеличиться на 10 баллов.Общий балл должен быть показан в следующем задании после того, как пользователь завершит отвечать на все вопросы.
Я уже искал ссылки, но все же я не понимаю, как установить измененный текст, когда "следующая кнопка"нажата и сохраняет ответ пользователя и одновременно подсчитывает счет в моем проекте.
Вот мой ответ JSON
{
"error": false,
"status": "success",
"result": [
{
"id": 96,
"description": "Meyakini dalam hati, mengucapkan dengan lisan, dan mengamalkan dalam kehidupan sehari-hari adalah arti dari . . . .",
"A": "iman",
"B": "islam",
"C": "ihsan",
"D": "takwa",
"Answer": "iman",
"discussion": "Iman kepada Allah Swt. adalah percaya dengan sepenuh hati bahwa Dia itu ada, diucapkan dengan lisan, dan diamalkan dalam perbuatan sehari-hari."
},
{
"id": 97,
"description": "Fatimah disuruh membeli minyak goreng di sebuah warung. Ketika menerima uang kembalian, ia tahu bahwa jumlahnya lebih dari seharusnya, lalu ia mengembalikannya. Ia sadar bahwa Allah Swt. selalu mengawasi perbuatannya, karena Allah Swt. bersifat . . . .",
"A": "al-'Aliim",
"B": "al-Khabiir",
"C": "as-Samii'",
"D": "al-Basiir",
"Answer": "al-Basiir",
"discussion": "Allah Maha Mengawasi yang berarti juga Allah Maha Melihat (al_Basiir)."
},
{
"id": 98,
"description": "Subhanallah, indahnya alam semesta dengan segala isinya. Semuanya tercipta dengan teratur dan seimbang. Fenomena alam tersebut merupakan bukti bahwa Allah Maha . . . .",
"A": "mengetahui",
"B": "teliti",
"C": "mendengar",
"D": "melihat",
"Answer": "teliti",
"discussion": "Semuanya tercipta dengan teratur dan seimbang yang berarti Allah Maha Teliti."
},
{
"id": 99,
"description": "Hasan selalu berhati-hati dalam setiap ucapan dan perbuatannya, karena ia yakin bahwa Allah Swt. senantiasa mendengarnya. Perbuatan tersebut merupakan pengamalan dari keyakinannya bahwa Allah Swt. bersifat . . . .",
"A": "al-'Aliim",
"B": "al-Khabiir",
"C": "as-Samii'",
"D": "al-Basiir",
"Answer": "as-Samii'",
"discussion": "Allah Swt. senantiasa mendengarnya yang berarti Allah Maha Mendengar (as-Samii')."
},
{
"id": 100,
"description": "Di antara bentuk pengamalan dari keyakinan terhadap al-'Aliim adalah . . . .",
"A": "rajin dalam menimba ilmu",
"B": "berusaha menghindari kemungkaran",
"C": "bersikap dermawan kepada sesama",
"D": "bersikap pemaaf kepada sesama",
"Answer": "rajin dalam menimba ilmu",
"discussion": "Allah Swt. sangat menyukai orang yang rajin mencari ilmu pengetahuan dan mengamalkannya"
},
{
"id": 101,
"description": "Allah Swt. sendirilah yang mengetahui kapan terjadinya hari kiamat, mengetahui apa yang terkandung di dalam rahim, mengetahui kapan akan turun hujan. Allah Swt. Maha Mengetahui merupakan makna dari . . . .",
"A": "al-'Aliim",
"B": "al-Khabiir",
"C": "as-Samii'",
"D": "al-Basiir",
"Answer": "al-'Aliim",
"discussion": "Dari kasus di atas berarti Allah Maha Mengetahui (al-'Aliim)."
},
{
"id": 102,
"description": "Di antara bentuk pengamalan dari keyakinan terhadap al-Khabiir adalah . . . .",
"A": "suka berbagi pengalaman dan pengetahuan",
"B": "senang menolong orang yang sedang susah",
"C": "menjadi suri teladan bagi orang lain",
"D": "bersemangat dan kreatif dalam segala hal",
"Answer": "bersemangat dan kreatif dalam segala hal",
"discussion": "Allah Swt. menciptakan milyaran makhluk dengan berbagai ragamnya. Semuanya diketahui oleh Allah dengan detail, penuh kecermatan dan kewaspadaan, baik secara lahir maupun batin."
},
{
"id": 103,
"description": "Allah Swt. Maha Mendengar suara apa pun yang ada di alam semesta ini. Pendengaran Allah tidak terbatas, tidak ada satu pun suara yang lepas dari pendengaran-Nya. Allah Swt. Maha Mendengar merupakan makna dari . . . .",
"A": "al-'Aliim",
"B": "al-Khabiir",
"C": "as-Samii'",
"D": "al-Basiir",
"Answer": "as-Samii'",
"discussion": "Allah Maha Mendengar atau disebut juga dengan as-Samii'."
},
{
"id": 104,
"description": "Allah Swt. Maha Melihat segala sesuatu walaupun lembut dan kecil. Allah Swt. pun melihat apa yang ada di bumi dan di langit. Allah Maha Melihat merupakan makna . . . .",
"A": "al-'Aliim",
"B": "al-Khabiir",
"C": "as-Samii'",
"D": "al-Basiir",
"Answer": "al-Basiir",
"discussion": "Allah Maha Melihat atau disebut juga dengan al-Basiir."
},
{
"id": 105,
"description": "Di antara bentuk pengamalan dari keyakinan terhadap al-Basiir adalah . . . .",
"A": "introspeksi diri untuk kebaikan",
"B": "introspeksi diri untuk kebaikan",
"C": "amar ma’ruf nahi munkar",
"D": "menjadi suri tauladan bagi orang lain",
"Answer": "introspeksi diri untuk kebaikan",
"discussion": "Kita diharuskan selalu introspeksi diri untuk melihat kelebihan dan kekurangan kita sendiri agar hidup menjadi lebih terarah, ini merupakan salah satu pengalaman dari al-Basiir"
}
]
}
Мой соответствующий класс модели
public class Task {
@SerializedName("id")
@Expose
private int id_soal;
@SerializedName("description")
@Expose
private String soal;
@SerializedName("A")
@Expose
private String option_A;
@SerializedName("B")
@Expose
private String option_B;
@SerializedName("C")
@Expose
private String option_C;
@SerializedName("D")
@Expose
private String option_D;
@SerializedName("Answer")
@Expose
private String jawaban;
@SerializedName("discussion")
@Expose
private String pembahasan;
public Task(int id_soal, String soal, String option_A, String option_B, String option_C, String option_D, String jawaban, String pembahasan) {
this.id_soal = id_soal;
this.soal = soal;
this.option_A = option_A;
this.option_B = option_B;
this.option_C = option_C;
this.option_D = option_D;
this.jawaban = jawaban;
this.pembahasan = pembahasan;
}
И мой TaskActivity
public class TaskActivity extends AppCompatActivity {
private ArrayList<Task> tasks;
TextView task_question;
RadioGroup choices_group;
RadioButton choice_A, choice_B, choice_C, choice_D;
Button next, previous;
ProgressDialog loading;
Token auth = PreferencesConfig.getInstance(this).getToken();
String token = "Bearer " + auth.getToken();
int score;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_banksoal_test);
task_question = findViewById(R.id.pertanyaan);
choices_group = findViewById(R.id.rg_question);
choice_A = findViewById(R.id.option_A);
choice_B = findViewById(R.id.option_B);
choice_C = findViewById(R.id.option_C);
choice_D = findViewById(R.id.option_D);
next = findViewById(R.id.bNext);
previous = findViewById(R.id.bPrevious);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//????????
}
});
}
@Override
protected void onResume() {
super.onResume();
alert_start();
}
public void alert_start(){
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setMessage("Mulai?");
alertDialog.setNegativeButton("Jangan dulu, saya belum siap!", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(TaskActivity.this, BanksoalShelvesActivity.class);
startActivity(intent);
}
});
alertDialog.setPositiveButton("Ayo, dimulai!", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
task();
dialog.dismiss();
}
});
AlertDialog alert = alertDialog.create();
alert.show();
}
public void task(){
loading = ProgressDialog.show(this, null, "Please wait...",true, false);
Intent intent = getIntent();
final int task_id = intent.getIntExtra("task_id", 0);
int classes = intent.getIntExtra("task_class", 0);
Call<ResponseTask> call = RetrofitClient
.getInstance()
.getApi()
.taskmaster_task(token, task_id, classes);
call.enqueue(new Callback<ResponseTask>() {
@Override
public void onResponse(Call<ResponseTask> call, Response<ResponseTask> response) {
loading.dismiss();
ResponseTask responseTask = response.body();
Log.d("TAG", "Response " + response.body());
if (response.isSuccessful()){
if (responseTask.getStatus().equals("success")){
Log.i("debug", "onResponse : SUCCESSFUL");
tasks = responseTask.getTasks();
showQuestion();
}else {
Log.i("debug", "onResponse : FAILED");
}
}
}
@Override
public void onFailure(Call<ResponseTask> call, Throwable t) {
Log.e("debug", "onFailure: ERROR > " + t.getMessage());
loading.dismiss();
Toast.makeText(TaskActivity.this, "Kesalahan terjadi.", Toast.LENGTH_LONG).show();
}
});
}
public void showQuestion(){
for (int i = 0; i < tasks.size(); i++){
task_question.setText(tasks.get(i).getSoal());
choice_A.setText(tasks.get(i).getOption_A());
choice_B.setText(tasks.get(i).getOption_B());
choice_C.setText(tasks.get(i).getOption_C());
choice_D.setText(tasks.get(i).getOption_D());
}
}
}