小弟我给EditText 加了个TextWatcher ,要自已在TextWatcher里写代码判断小数点只允许输入一次,想不出来代码,求高手写下多谢!
我给EditText 加了个TextWatcher ,要自已在TextWatcher里写代码判断小数点只允许输入一次,想不出来代码,求高手写下谢谢!!
不能用android:inputType="number" android:digits="0123456789."
只能自己在DoubleTextWatcher 里写代码,只允许用户输入一次小数点,重复输入小数点,就当什么也没输入的代码.
------解决思路----------------------
判断当获取到第一个小数点的时候,动态设置android:digits
EditText mEditText = (EditText)findViewById(R.id.MyEditText);
String digits = "0123456789";
mEditText.setKeyListener(DigitsKeyListener.getInstance(digits));
未验证,楼主可以试试
------解决思路----------------------
想法比较简单,应该能用
不能用android:inputType="number" android:digits="0123456789."
只能自己在DoubleTextWatcher 里写代码,只允许用户输入一次小数点,重复输入小数点,就当什么也没输入的代码.
private class DoubleTextWatcher implements TextWatcher {
private EditText mEditText;
public DoubleTextWatcher(EditText e) {
mEditText=e;
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
public void afterTextChanged(Editable s) {
}
}
------解决思路----------------------
判断当获取到第一个小数点的时候,动态设置android:digits
EditText mEditText = (EditText)findViewById(R.id.MyEditText);
String digits = "0123456789";
mEditText.setKeyListener(DigitsKeyListener.getInstance(digits));
未验证,楼主可以试试
------解决思路----------------------
想法比较简单,应该能用
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
String content = s == null ? null : s.toString();
if(s == null
------解决思路----------------------
s.length() == 0) {
return;
}
int size = content.length();
if(!content.endsWith(".")) { //最后输入的不是点,无需处理
return;
}
if(content.substring(0, size - 1).contains(".")) { //判断之前有没有输入过点
s.delete(size-1, size);//之前有输入过点,删除重复输入的点
}
}