如何监听RecyclerView中的EditText的输入
时间: 2023-11-16 07:15:25 浏览: 144
要监听RecyclerView中的EditText的输入,需要在RecyclerView的Adapter中为每个EditText设置一个TextWatcher,然后在TextWatcher中实现对EditText输入的监听。
以下是一个示例代码:
```java
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> mData;
public static class ViewHolder extends RecyclerView.ViewHolder {
public EditText editText;
public ViewHolder(View itemView) {
super(itemView);
editText = itemView.findViewById(R.id.editText);
}
}
public MyAdapter(List<String> data) {
mData = data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
String text = mData.get(position);
holder.editText.setText(text);
// 为EditText设置TextWatcher
TextWatcher textWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// 当EditText的输入内容发生变化时,更新数据集合中对应的数据
mData.set(holder.getAdapterPosition(), s.toString());
}
@Override
public void afterTextChanged(Editable s) {
}
};
holder.editText.addTextChangedListener(textWatcher);
}
@Override
public int getItemCount() {
return mData.size();
}
}
```
在上述代码中,我们为每个EditText设置了一个TextWatcher,在TextWatcher的回调方法中,当EditText的输入内容发生变化时,我们更新数据集合中对应的数据。这样就可以监听RecyclerView中的EditText的输入了。
阅读全文