在XML中对EditText进行属性设置:
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="38dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="25dp"
android:inputType="number"
android:layout_marginTop="70dp"
android:digits="0123456789."
android:layout_toLeftOf="@id/dpr_submit"
android:background="@null"/>android:digits表示可以输入的文字在该范围以内
对EditText设置监听
mPartialAmount.addTextChangedListener(new TextWatcher() {
private int selectionStart;
private int selectionEnd;
@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 = mPartialAmount.getSelectionStart();
selectionEnd = mPartialAmount.getSelectionEnd();
if (!NumberUtil.isOnlyPointNumber(mPartialAmount.getText().toString()) && selectionStart > 0) {
//删除小数点后两位多余的数据
s.delete(selectionStart - 1, selectionEnd);
mPartialAmount.setText(s);
//设置光标在文字的最后
mPartialAmount.setSelection(s.length());
}
}
});NumberUtil.isOnlyPointNumber的代码:
public static boolean isOnlyPointNumber(String number) {
Pattern pattern = Pattern.compile("^\\d+\\.?\\d{0,2}$");
Matcher matcher = pattern.matcher(number);
return matcher.matches();
}