Android中EditText在ListView中会出现消失的情况

问题描述:
在ListView中包含EditText组件,当下拉ListView的时候,容易出现一个情况,就是EditText中的值会消失。
我目前也不知道是什么原因导致这种事情的发生。
解决办法:

if (map.get("grade") != null && !map.get("grade").toString().equals("0")) {
            edit.setText((String)map.get("grade").toString());
        }
        // 文本改变监听器
        edit.addTextChangedListener(new TextWatcher(){
            int l = 0;//记录字符串被删除字符之前,字符串的长度
            int location = 0;//记录光标的位置

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                // TODO Auto-generated method stub
                l = s.length();
                location = edit.getSelectionStart();
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // TODO Auto-generated method stub
                Pattern p = Pattern.compile("^(100|[1-9]\\d|\\d)$");

                Matcher m = p.matcher(s.toString());
                if(m.find() || ("").equals(s.toString())){
                    System.out.print("OK!");
                }else{
                    System.out.print("False!");
                    Toast.makeText(context, "请输入正确的数值", Toast.LENGTH_SHORT).show();
                }
//              list.add(position)
                ((Map<String,Object>)list.get(position)).put("grade", s.toString());
            }

            @Override
            public void afterTextChanged(Editable s) {
                appContext.mGradeStr.put((String)map.get("id"), s.toString());
            }});

上面代码,其实思路很简单,一个就是把值存到List中,二个就是取出List中的值。
从List中取出来的主要代码是:

if (map.get("grade") != null && !map.get("grade").toString().equals("0")) {
            edit.setText((String)map.get("grade").toString());
        }

放到List中:

((Map<String,Object>)list.get(position)).put("grade", s.toString());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值