我在listview中有edittext。我想限制用戶輸入小數點後兩位以上的數字。現在它允許n個數字。如何限制用戶輸入小數點後不輸入兩個以上的數字而不使用模式?如何限制用戶輸入小數點後沒有超過兩位數?
回答
您可以使用TextWatcher並在afterTextChanged方法中使用正則表達式來匹配所需的文本並刪除輸入的額外數字。
我們可以使用正則表達式(正則表達式)如下:
public class DecimalDigitsInputFilter implements InputFilter {
Pattern mPattern;
public DecimalDigitsInputFilter(int digitsBeforeZero,int digitsAfterZero) {
mPattern=Pattern.compile("[0-9]{0," + (digitsBeforeZero-1) + "}+((\\.[0-9]{0," + (digitsAfterZero-1) + "})?)||(\\.)?");
}
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
Matcher matcher=mPattern.matcher(dest);
if(!matcher.matches())
return "";
return null;
}
}
要使用它:
editText.setFilters(new InputFilter[] {new DecimalDigitsInputFilter(5,2)});
我沒有在我的代碼使用模式。那麼該怎麼做呢? – Arunraj
你是什麼意思「怎麼做?」。這個答案有什麼問題? – Astrorvald
這可能是晚了,但我張貼我的解決辦法希望它會作品有人
在文本觀察者方法afterTextChanged做到這一點。
public void afterTextChanged(Editable s) {
if(mEditText.getText().toString().contains(".")){
String temp[] = mEditText.getText().toString().split("\\.");
if(temp.length>1) {
if (temp[1].length() > 3) {
int length = mEditText.getText().length();
mEditText.getText().delete(length - 1, length);
}
}
}
}
這裏在(temp [1] .length()> 3)中3是「。」之後的數字的限制。你可以用你的限制來替換它 –
- 1. 如何限制輸入小數點後兩位?
- 2. 如何將html輸入限制爲正數小數點後兩位小數?
- 3. 如何強制用戶在小數點後只輸入兩位數字?
- 4. 限制雙到小數點後兩位
- 5. 如何限制EditText框輸入小數點後兩個字符?
- 6. Python:用戶輸入數字後只有兩位小數
- 7. 如何測試用戶輸入是小數點後不超過2位數的小數?
- 8. 如何將小數點後兩位到小數點後n位?
- 9. 限制小數點後的位數
- 10. 限制輸入字段以一個小數點和兩個小數位
- 11. 限制用戶輸入僅限於2位小數的有效數字C/C++
- 12. 在Perl中,如何限制小數點後的位數,但沒有尾隨零?
- 13. 限制用戶輸入爲4位數
- 14. 如何在python隨機數限制小數點後的位數
- 15. 如何四捨五入浮點數。到小數點後兩位?
- 16. 將小數點後的數字輸入限制爲兩個固定數字
- 17. 如何輸入字段限制爲數字只能用兩個小數點
- 18. 如何限制文本框輸入十進制值,其中允許小數點前六位數字和小數點後兩位數字
- 19. REACT - 防止小數點後2位小數點後的輸入
- 20. 使用jQuery將輸入字段限制爲兩位小數
- 21. 限制一個雙精度到小數點後兩位的小數位
- 22. 如何將此浮點數小數點後兩位小數?
- 23. 舍入到小數點後兩位
- 24. 限制用戶輸入decimel之前超過7個位數和3 decimel
- 25. Android:如何防止用戶輸入小數點後3位以上的數字
- 26. 將小數點後兩位數舍入到3位小數點,但在小數點後三位消失0
- 27. 如何比較兩位小數到小數點後10位?
- 28. 限制小數點後的位數在HTML5型(Angularjs模型)=「號」輸入字段
- 29. 使用逗號將小數點後兩位的輸入舍入一個輸入
- 30. 在角度js中只輸入小數點後兩位小數點
看http://stackoverflow.com/questions/5357455/limit-decimal-places-in-android-edittext –