我无法理解如何将在多个编辑文本字段中输入的值合并到一个数组中。
这是我的代码:
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());将所有值都存储在一个字符串中,然后从那里开始,但是当我这样做时,我只会获取在最后一个文本字段中输入的值。
答案 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());
}