动态获取列表里输入框中的内容

安卓的需求千变万化,今儿又接到一个需求——获取列表的输入框里的值。废话不多说,上代码

 private Context mcontext;
    private List<CodeModel> list;

    private String a;
    private String b;
	
    public YKQuanlityDetailsAdapter(Context mcontext, List<CodeModel> list) {
        this.mcontext = mcontext;
        this.list = list;

    }
    //接口
    public interface SaveEditListener{
		//方法
        void SaveEditss(String  id, String aa,String bb);
    }


    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = View.inflate(mcontext, R.layout.activity_ykquanlity_detail2, null);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        holder.textView.setText(list.get(position).getFname());
    }

    @Override
    public int getItemCount() {
        return list == null ? 0 : list.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        TextView textView;
        EditText editText1, editText2;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.reason_name);

            editText1 = itemView.findViewById(R.id.edit1);
            editText2 = itemView.findViewById(R.id.edit2);

            //写入监听
            editText1.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) {

                }

                @Override
                public void afterTextChanged(Editable editable) {
                    a=editable.toString();
                   if(editable!=null){
                       SaveEditListener mcontext = (SaveEditListener) YKQuanlityDetailsAdapter.this.mcontext;
                       mcontext.SaveEditss(list.get(getLayoutPosition()).getFid(),a,b);
                        b="";
                   }else{

                       SaveEditListener mcontext = (SaveEditListener) YKQuanlityDetailsAdapter.this.mcontext;
                       mcontext.SaveEditss(list.get(getLayoutPosition()).getFid(),a,b);
                   }
                }
            });

            editText2.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) {

                }

                @Override
                public void afterTextChanged(Editable editable) {
                    if(editable!=null){
                        b=editable.toString();
                        SaveEditListener mcontext = (SaveEditListener) YKQuanlityDetailsAdapter.this.mcontext;
                        mcontext.SaveEditss(list.get(getLayoutPosition()).getFid(),a,b);
                    }else{
                        b="";
                        SaveEditListener mcontext = (SaveEditListener) YKQuanlityDetailsAdapter.this.mcontext;
                        mcontext.SaveEditss(list.get(getLayoutPosition()).getFid(),a,b);
                    }
                }
            });
        }
    }

这是整个适配器的代码,与正常适配器不同的就是,写了一个接口,然后在输入框的动态监听的改变后的方法里调用接口里的方法,然后就是在页面类里实现适配器里的接口并重写接口里的方法,就能拿到从适配器获取到的输入框的值(Ps:我的是两个输入框,如果需求是一个的话,去掉一个就好)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值