Как получить значения динамически создаваемых значений Edit Text в представлении Recycler? - PullRequest
1 голос
/ 19 марта 2020

Я создаю Editext в виде переработчика как элемент на основе ответа от REST API. Мне нужно получить значения для EditTexts, созданных в списке, на моей странице активности. EditText создается в Adapter .

Как получить значения EditText?

screeenshot

private void populateCheckBoxWithText(ViewHolder viewHolder, int position) {
    int ctr = 1;
    for (final String optionAns : arrayList.get(position).getOptionList()) {
        Random rand = new Random();

        CheckBox cBoxOption = new CheckBox(activity);
        cBoxOption.setId(ctr);
        cBoxOption.setTag(ctr);
        cBoxOption.setText(optionAns);

        editext_miltiple = new Custom_EditText_Regular(activity);
        editext_miltiple.setId(ctr);
        editext_miltiple.setTag(ctr);
        editext_miltiple.setTextSize(12);
        if (ctr != 1) {
            cBoxOption.setLayoutParams(applyDesignParams(5, 1, 1, 1, 1));
            editext_miltiple.setLayoutParams(applyDesignParams(5, 1, 1, 1, 1));
        } else {
            editext_miltiple.setLayoutParams(applyDesignParams(1, 1, 1, 1, 1));
        }

        editext_miltiple.setGravity(Gravity.CENTER_VERTICAL);
        editext_miltiple.setBackground(null);
        editext_miltiple.setHint("Enter response");
        editext_miltiple.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
        editext_miltiple.setPadding((int) AppData.convertDpToPixels(33, activity), (int) AppData.convertDpToPixels(5, activity), 0, 0);

        viewHolder.sub_item.addView(cBoxOption);
        viewHolder.sub_item.addView(editext_miltiple);

        cBoxOption.setOnClickListener(getOnClickDoSomething(cBoxOption, arrayList.get(position).getQuestionID(), null, position, viewHolder));
        //stringBuilder_multi.append(arrayList.get(position).getQuestionID() + ":" + editext_miltiple.getId() + ":");
        //multi_select_txt=arrayList.get(position).getQuestionID() + ":" + editext_miltiple.getId() + ":";
        editext_miltiple.addTextChangedListener(new GenericTextWatcher(editext_miltiple, position));


        ctr++;

    }
}

В приведенном выше image link, Editexts создаются динамически в al oop. Мне нужно получить значения этих Editexts в моей активности.

Мне нужно создать шаблон, подобный этому ==> CheckBoxValue <> EditTextValue и отправить JSON на сервер. Например: Технические <> edit_text_response , когда пользователь нажимает флажок и вводит EditText.

Любая помощь приветствуется!

Ответы [ 3 ]

0 голосов
/ 19 марта 2020

Почему бы вам не установить тег для каждого текста редактирования в соответствии с порядком его создания?

0 голосов
/ 20 марта 2020

сначала создайте тип массива Edittext, а затем сохраните каждый текст редактирования в этом массиве после того, как вы хотите получить значение из текста редактирования, сгенерировать l oop массива и значение выборки

0 голосов
/ 19 марта 2020

Вы можете создать ArrayList на своем уровне класса, чтобы сохранить EditTexts, которые вы создали в l oop. при создании EditTexts добавьте их в ArrayList. Как

ArrayList<EditText> editTexts = new ArrayList<>();

Затем в вашем l oop добавьте

 editTexts.add(editext_miltiple);

Затем, где вы хотите получить доступ к EditText, вы можете получить доступ из ArrayList.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...