Создание динамических радиокнопок из данных JSON - PullRequest
0 голосов
/ 05 июля 2018

Я получил данные из API и хочу отобразить небольшой массив в качестве переключателя, поскольку у пользователя должен быть только один выбор.

Вот мой код для получения данных из сети:

if (coachName != null && coachId != null) {
        nameTV.setText(coachName);
        fetchBatches(coachId);
        createGroups();
    }

в fetchBatches(id), я сделал это в методе ответа json:

if (response != null) {
                        Log.d(TAG, "Batches Response:\t" + response.toString());
                        try {
                            JSONObject object = new JSONObject(response.toString());

                            String message = object.getString("message");

                            JSONArray array = object.getJSONArray("batch_details");
                            for (int m = 0; m < array.length(); m++) {

                                JSONObject jsonObject = array.getJSONObject(m);

                                name_batch = jsonObject.getString("batch_name");
                                id_batch = jsonObject.getString("batch_id");

                                batch = new BatchResponse();
                                batch.setBatchId(id_batch);
                                batch.setBatchName(name_batch);

                                list.add(batch);

                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

Хорошо работает и метод создания радиокнопок:

radioButtons = new RadioButton[list.size()];
    for (int i = 0; i < list.size(); i++) {
        radioButtons[i] = new RadioButton(this);
        radioButtons[i].setGravity(Gravity.CENTER_HORIZONTAL);
        batchGroup.addView(radioButtons[i]);
        radioButtons[i].setText(list.get(i).getBatchName());
        radioButtons[i].setChecked(false);
    }

но на экране ничего не отображается. Вот глобальные переменные, используемые для каждого метода:

private RadioGroup batchGroup;
private BatchResponse batch;
private List<BatchResponse> list = new ArrayList<>();
private String name_batch, id_batch;
private RadioButton[] radioButtons;

Я неправильно это настраивал? Мне нужна помощь с этой проблемой. Спасибо.

1 Ответ

0 голосов
/ 10 августа 2018

Попробуйте вызвать метод createGroups () после цикла for в методе fetchBatches (coachId).

...