使用回收者视图/对象从EditText字段获取字符串

时间:2018-11-13 21:47:48

标签: java android android-studio android-recyclerview android-edittext

我无法理解如何将在多个编辑文本字段中输入的值合并到一个数组中。

这是我的代码:

    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 :(得分:1)

创建最终的局部变量,而不是成员变量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());
    }