我有一个 RecyclerView
,它的每一行都有一个 EditText
。行数在 50 到 60 之间。我从服务器获取行数。如何获取每个 EditText
的文本?这个 Action 会给我一个异常错误吗?
最佳答案
您可以在适配器和 View 持有者中实现此逻辑:
class YourAdapter extend RecyclerView.Adapter<YourAdapter.ViewHolder> {
List<String> yourEditTextContents = ...;
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.yourEditText.setTag(position);
holder.yourEditText.setText(yourEditTextContents.get(position));
}
class ViewHolder extend RecyclerView.ViewHolder {
EditText yourEditText;
public ViewHolder(View root){
...
yourEditText = root.findViewById();
yourEditText.addTextChangedListener(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) {
}
@Override
public void afterTextChanged(Editable s) {
int position = (int)yourEditText.getTag();
yourEditTextContents.set(position, s.toString());
}
});
}
}
}
之后,您可以使用以下方式获取编辑文本的文本:
yourEditTextContents.get(position)
关于android - 从recyclerview的每一行获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35991835/