0
其實我有一個EditBox
,其中我允許用戶輸入數字。但我的問題是如何限制用戶在小數點之前輸入不多於三位數字,小數點後不多於一位數字例如:22.1,333.3,34 ..但如果用戶嘗試輸入6666.777則不會允許他們進入。如何限制用戶在編輯框中輸入
請幫我解決這個問題。如果可能舉例
其實我有一個EditBox
,其中我允許用戶輸入數字。但我的問題是如何限制用戶在小數點之前輸入不多於三位數字,小數點後不多於一位數字例如:22.1,333.3,34 ..但如果用戶嘗試輸入6666.777則不會允許他們進入。如何限制用戶在編輯框中輸入
請幫我解決這個問題。如果可能舉例
使用InputFilter
來限制用戶。這是另一個這樣的話題。 Limit Decimal Places in Android EditText
修改爲您自己。我用這個爲我自己。
private class DecimalDigitsInputFilter implements InputFilter
{
Pattern mPattern;
public DecimalDigitsInputFilter(int digitsBeforeZero, int digitsAfterZero)
{
mPattern = Pattern.compile("[0-9]{0,3}\\.[0-9]{0,1}||[0-9]{1,3}");
}
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;
}
}
現在設置過濾器
youEditText.setFilters(new InputFilter[] {new DecimalDigitsInputFilter(3,1)});
是否可以使用正則表達式做......但什麼將是我的條件,模式 – AndroidDev 2012-04-23 10:11:00
是。可能。 :)。編輯我的答案。 – Shaiful 2012-04-23 10:11:30
嘿Shaiful ..你的代碼工作,但333後,它不會讓我進入。我想要的是讓用戶在小數點前輸入三位數字,在小數點後輸入一位數字。在我們的代碼中,只有當小數點前有2位數字時,才允許我在小數點後輸入數字..但是我的要求是,如果小數點前的數字不超過3位,它總是允許用戶在小數點後輸入一位數字。更多有史以來它不允許用戶輸入以零開頭的數字,如0.1,0,.1等。 – AndroidDev 2012-04-23 10:30:28