我有一个测验应用程序,如果单击“下一个”或“上一个”按钮,则问题和选择将改变。答案问题和选择均来自使用改进的JSON响应。答案选项具有自己的ID,并附带答案。
我不知道如何检查正确答案,因为我根据看到的教程(不是完整的教程)动态制作了单选按钮,并且我也不知道如何更改答案和选择答案当我单击下一步按钮时。
我已经成功加载了第一个问题,那么下一步该怎么做?
这是我的JSON响应https://jsoneditoronline.org/?id=da27be0c01104acfa79d8362df2c99b5
这是我的代码:
public class BanksoalTestActivity extends AppCompatActivity {
private RecyclerView rv_soal;
private RecyclerView.Adapter adapter;
private ArrayList<BanksoalSoal> banksoalSoals;
private ArrayList<Answers> answers;
TextView soal_title, task_title;
RadioGroup jawaban_group;
RadioButton radioButton;
Button next, previous;
ProgressDialog loading;
Token auth = PreferencesConfig.getInstance(this).getToken();
String token = "Bearer " + auth.getToken();
int counter = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_banksoal_test);
Intent intent = getIntent();
String judul = intent.getStringExtra("task_title");
task_title = findViewById(R.id.title_soal);
task_title.setText(judul);
soal_title = findViewById(R.id.pertanyaan);
jawaban_group = findViewById(R.id.rb_soal);
next = findViewById(R.id.bNext);
previous = findViewById(R.id.bPrevious);
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");
banksoalSoals = responseTask.getBanksoalSoals();
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(BanksoalTestActivity.this, "Kesalahan terjadi. Silakan coba beberapa saat lagi.", Toast.LENGTH_LONG).show();
}
});
}
public void showQuestion(){
for (int i = 0; i < 1; i++){
soal_title.setText(banksoalSoals.get(i).getSoal());
answers = banksoalSoals.get(i).getAnswers();
final int soal_id = banksoalSoals.get(i).getId_soal();
Log.i("debug", "onResponse : " + answers.size() );
for (int j = 0; j < answers.size(); j++){
radioButton = new RadioButton(BanksoalTestActivity.this);
radioButton.setText(answers.get(j).getChoice() + ". " + answers.get(j).getAnswer());
radioButton.setId(soal_id);
jawaban_group.addView(radioButton);
}