我们需要一个用于EditText
. 键盘应具有基于设备所选区域设置的小数分隔符。我们通过将自定义设置DigitsKeyListener
为EditText
public class NumericDigitsKeyListener extends DigitsKeyListener {
@Override
protected char[] getAcceptedChars() {
char[] acceptedCharacters = null;
acceptedCharacters = new char[] {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
new DecimalFormatSymbols(Locale.getDefaultLocale()).getDecimalSeparator()
return acceptedCharacters;
}
/**
* @see android.text.method.DigitsKeyListener#getInputType()
*/
public int getInputType() {
return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL;
}
以上似乎适用于大多数设备,但对于三星 Galaxy S-II,软键盘的键盘中没有逗号。设备的 swype 键盘显示逗号,但默认键盘没有。
我已尝试覆盖此处提到的 DigitsKeyListener
有没有办法可以强制所有设备在数字键盘上使用逗号(如果适用,甚至总是)?