Получение строк из полей EditText с использованием представления / объекта переработчика - PullRequest
0 голосов
/ 14 ноября 2018

У меня проблемы с пониманием того, как я могу получить значения, введенные в нескольких текстовых полях редактирования, в один массив.

Вот мой код:

    class MyViewHolder extends RecyclerView.ViewHolder{

    protected EditText editText;

    public MyViewHolder(View itemView) {
        super(itemView);

        editText = (EditText) itemView.findViewById(R.id.editid);

        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

                editModelArrayList.get(getAdapterPosition()).setEditTextValue(editText.getText().toString());
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });

    }

}

        for (int i = 0; i < CustomAdapter.editModelArrayList.size(); i++){

        tv.setText(tv.getText() + " "+ CustomAdapter.editModelArrayList.get(i).getEditTextValue());

    }

Что я хотел бы сделать, так это использовать этот код CustomAdapter.editModelArrayList.get (i) .getEditTextValue ()); чтобы получить все значения в одной строке, а затем перейти оттуда, но когда я делаю это, я получаю только значение, введенное в последнем текстовом поле.

1 Ответ

0 голосов
/ 14 ноября 2018

Вместо переменной-члена editText создайте конечную локальную переменную и используйте ее в слушателе:

final EditText editText2 = (EditText) itemView.findViewById(R.id.editid);

editText2.addTextChangedListener(new TextWatcher() {
.
.
.
    @Override
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        editModelArrayList.get(getAdapterPosition()).setEditTextValue(editText2.getText().toString());
    }
...