首页 > 解决方案 > 如何将回收站视图上的 Edittext 值保存到后端

问题描述

我正在开发一个使用大量二维码扫描的应用程序。在我的一个模块中,我扫描代码,并在 recyclerView 上获取与扫描结果相关的相应标签。

现在我的这个rec​​yclerview 列表的布局包含一个TextView 和一个editText。在我的适配器类的帮助下,列表中的每个标签都获取并带有一个 editText。

现在我想做的是我想通过每个标签前面的那些editext保存有关每个标签的数据。我在这里关心的是我将如何做到这一点。

从适配器或我的适配器的父片段获取每个 EditText 的数据并将其发送到服务(这里我使用改造)。

我查看了网络,但没有发现任何有用的东西。如果你们中的任何人都可以在这方面提供帮助或建议我做其他事情,那就太好了。

任何帮助将不胜感激!!!!

::编辑::

标签适配器.java

public class labelsAdapter extends RecyclerView.Adapter<labelsAdapter.UsersViewHolder> {

Context context;
List<LabelModel> userListResponseData;
ArrayList<String> labeldatalist = new ArrayList<String>();

public labelsAdapter(Context context, List<LabelModel> userListResponseData) {
    this.userListResponseData = userListResponseData;
    this.context = context;

}

@Override
public UsersViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View view = LayoutInflater.from(context).inflate(R.layout.label_list_items, parent,false);
    UsersViewHolder usersViewHolder = new UsersViewHolder(view);
    return usersViewHolder;
}

@Override
public void onBindViewHolder(@NonNull UsersViewHolder usersViewHolder, int i) {

    String label_item = userListResponseData.get(i).getLabel_name();
    usersViewHolder.tv_labelName.setText(label_item);
    usersViewHolder.ed_labelValue.getText().toString();




}



@Override
public int getItemCount() {
    return userListResponseData.size(); // size of the list items
}

class UsersViewHolder extends RecyclerView.ViewHolder {
    // init the item view's
   private TextView tv_labelName;
   private EditText ed_labelValue;

    public UsersViewHolder(View itemView) {
        super(itemView);
        // get the reference of item view's
        tv_labelName = (TextView)itemView.findViewById(R.id.label_list_tv);
        ed_labelValue = (EditText)itemView.findViewById(R.id.label_list_edt);
    }
}
 }

标签: androidandroid-edittextandroid-recyclerview

解决方案


将 textchangelistener 用于适配器 edittext 并侦听适配器类中的文本更改,然后将值存储在后端。

 usersViewHolder.ed_labelValue. 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) {
// add your code here 
}
  });

推荐阅读