难点为如何记录修改的位置,容易造成混乱
我们可以用edittext的
setOnTouchListener
方法来记录当前修改的edittext的位置
然后在
addTextChangedListener的
afterTextChanged
方法进行筛选
tv_phone_num.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { mClickPosition = position; return false; } }); //修改手机号码 tv_phone_num.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) { //只走条目中的点击事件 //if (!tv_phone_num.isPressed()) return; String phone = s.toString().trim(); if(s.length() == 11 && mClickPosition == position && !isAdd){ PhoneNum phoneNum =new PhoneNum(); phoneNum.setPhoneNum(phone); //phoneNum.setGoodNum(Integer.valueOf(goodNo)); phoneNum.setGoodNum(phoneList.get(position).getGoodNum()); phoneList.remove(position); phoneList.add(position,phoneNum); mClickPosition = -1; } } });