美文网首页
edittext实现只能输入数字,且最多保留两位小数

edittext实现只能输入数字,且最多保留两位小数

作者: 王大碗要努力 | 来源:发表于2018-09-28 09:37 被阅读0次
    1、xml布局
    <EditText
                            android:id="@+id/edHotTempValue"
                            android:layout_width="50dp"
                            android:layout_height="wrap_content"
                            android:background="@drawable/edit_bg"
                            android:paddingLeft="10dp"
                            android:inputType="number|numberDecimal"
                            android:text="0" />
    
    2、edittext监听
    
    private int selectionStart;
    private int selectionEnd;
    edittext.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) {
                    selectionStart = edittext.getSelectionStart();
                    selectionEnd = edittext.getSelectionEnd();
                    if(!edHotTempValue.getText().toString().equals("")){
                    if (!isOnlyPointNumber(edittext.getText().toString())){
                        ToastUtils.showLong("您输入的数字保留在小数点后两位");
                        //删除多余输入的字(不会显示出来)
                        s.delete(selectionStart - 1, selectionEnd);
                        edittext.setText(s);
                    }
                    }
                }
            });
    
    public static boolean isOnlyPointNumber(String number) {//保留两位小数正则
            Pattern pattern = Pattern.compile("^\\d+\\.?\\d{0,1}$");
            Matcher matcher = pattern.matcher(number);
            return matcher.matches();
        }
    
    
    

    相关文章

      网友评论

          本文标题:edittext实现只能输入数字,且最多保留两位小数

          本文链接:https://www.haomeiwen.com/subject/zneuoftx.html