我的编辑文字只能接受3位数字,而不能接受任何其他十进制数字。我使用下面的正则表达式来做到这一点,但这甚至接受像“。”这样的字符。和“ - ”。那么如何避免接受小数值?
pattern=Pattern.compile("[0-9]{0,2}");
即使我将编辑文本设置为
android:digits="0123456789"
android:inputType="number"
这不起作用。怎么解决?
答案 0 :(得分:14)
试试这个:
android:inputType="number|none"
android:maxLength="3"
android:digits="0123456789"
答案 1 :(得分:1)
在xml的edittext中设置这些...
android:inputType="numberDecimal"
android:maxLength="3"
答案 2 :(得分:0)
将此设置为EditText
android:inputType:"number"
android:maxLength:"3"
答案 3 :(得分:0)
我想你应该使用TextWacher class
以编程方式进行editText.addTextChangedListener(new TextWatcher()
{
Handler handler = new Handler();
Runnable delayedAction = null;
@Override
public void onTextChanged( CharSequence s, int start, int before, int count)
{}
@Override
public void beforeTextChanged( CharSequence s, int start, int count, int after)
{}
@Override
public void afterTextChanged( final Editable s)
{}
});
答案 4 :(得分:0)
尝试将它放在EditText xml声明中:
android:inputType="number|none"
享受编码:)
答案 5 :(得分:0)
答案 6 :(得分:0)
如果输入不接受小数,则事件。就我而言,如果我将文本设置为以编程方式输入,则结果将为十进制(末尾添加.0)。因此,为解决此问题,我在设置文本时将其替换。
double myValue = 25000;
myInput.setText(String.valueOf(myValue).replace(".0", ""));