如何通过单击“下一步”按钮设置textview和设置动态单选按钮值

时间:2019-05-25 12:36:30

标签: android retrofit

我有一个测验应用程序,如果单击“下一个”或“上一个”按钮,则问题和选择将改变。答案问题和选择均来自使用改进的JSON响应。答案选项具有自己的ID,并附带答案。

我不知道如何检查正确答案,因为我根据看到的教程(不是完整的教程)动态制作了单选按钮,并且我也不知道如何更改答案和选择答案当我单击下一步按钮时。

我已经成功加载了第一个问题,那么下一步该怎么做?

这是我成功加载的第一个问题的图像:
here's image of the first question I've successfully load

这是我的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);
            }

0 个答案:

没有答案