300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Android开发之EditText监听软键盘清除(输入是否清除)

Android开发之EditText监听软键盘清除(输入是否清除)

时间:2023-04-06 13:27:35

相关推荐

Android开发之EditText监听软键盘清除(输入是否清除)

当我们监听数据变化后再相应的位置新增符号,发现无法删除,所以有了下面的方法

我下面是监听400||800电话,每三位添加"-":例如400-855-8574

但是当我发现删除的时候到第七位就无法删除了,应该监听到第七位删除后有自动添加"-"了导致肉眼感觉到没有删除的假象

etSafeAfterNumber.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {//监听之前的长度beforeLength = s.toString().length();}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {}@Overridepublic void afterTextChanged(Editable s) {//判断是否为400||800开头电话if (TextUtils.isEmpty(s.toString())) {return;}//监听变化后的长度int afterLength = s.toString().length();if (s.toString().startsWith("400") || s.toString().startsWith("800")) {if (beforeLength < afterLength) {//判断之前的长度小于变化后的长度才走添加"-",否则走正常删除逻辑etSafeAfterNumber.setFilters(new InputFilter[]{new InputFilter.LengthFilter(12)});String trim = etSafeAfterNumber.getText().toString().trim();if (trim.length() == 3) {etSafeAfterNumber.setText(new StringBuffer(trim).append("-"));etSafeAfterNumber.setSelection(trim.length() + 1);} else if (trim.length() == 7) {etSafeAfterNumber.setText(new StringBuffer(trim).append("-"));etSafeAfterNumber.setSelection(trim.length() + 1);}}} else {etSafeAfterNumber.setFilters(new InputFilter[]{new InputFilter.LengthFilter(11)});}}});

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。