Как получить значения динамически создаваемого флажка Android? - PullRequest
0 голосов
/ 05 июля 2018

Я создал флажки динамически (как ответ от API). Теперь мне нужно получить значения флажков, которые проверены. Вот мой код

private HashMap<Integer,String> answerMap= new HashMap<>();

for (int i = 1; i <= formsData.get(position).getValues().size(); i++) {
                CheckBox checkBox = new CheckBox(mContext);
                Forms forms = formsData.get(position);
                checkBox.setText(formsData.get(position).getValues().get(i - 1));
                checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        if (isChecked) {
                            answerMap.put(formsData.get(position).getQuestionId(),checkBox.getText().toString());
                        } else {
                            answerMap.remove(formsData.get(position).getQuestionId());
                            System.out.println("map size: " + answerMap.size());
                        }
                        for (Map.Entry<Integer, String> entry : answerMap.entrySet()) {
                            Integer key = entry.getKey();
                            String value = entry.getValue();
                            System.out.println("question id : " + key + " answer : " + value);

                        }
                    }
                });  

но здесь, если установлено несколько флажков, я получаю только значение последнего проверенного элемента. Кто-нибудь, помогите мне

1 Ответ

0 голосов
/ 05 июля 2018

Создайте список перед циклом: ArrayList<CheckBox> array = new ArrayList<>();
После каждого создания флажка добавляйте его в список: array.add(checkBox);
Теперь у вас есть все свои флажки в списке, и вы можете просмотреть их, чтобы найти, которые проверены:

    for (int i = 0; i < array.size(); i++) {
        if (array.get(i).isChecked()) {
            Log.i("mine", i + " is checked");
        }
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...