需求很简单,就是要设置一个EditText仅能输入数字且输入的数字中小数部分最多可以有两位。
第一步,很简单,在XML文件中,将EditText的inputType设置成NumberDecimal,多余的属性我就不写出来,只写出主要的部分:
<EditText
。。。
android:inputType="numberDecimal"
。。。
/>
第二部,代码中修改EditText 的addTextChangedListener 方法,同样的先上代码,再来解释:
EditText.addTextChangedListener(new TextWatcher() {
// Tips:
// 1. onTextChanged和beforTextChanged传入的参数s其实是当前EditText的文字内容,而不是当前输入的内容
// 2. 如果在任意一个方法中调用了设置当前EditText文本的方法,setText(),实际都触发了一遍这3个函数,
// 所以要有判断条件,在if体内去setText,而且就需要手动设置光标的位