Нам нужна цифровая клавиатура для 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;
}
. Вышеупомянутое работает нормально для большинства устройств, однако для Samsung Galaxy S-II программная клавиатура не имеет запятой в клавиатура. Клавиатура swype устройства отображает запятую, а стандартная нет.
Я попытался переопределить DigitsKeyListener, как упоминалось здесь
Есть ли способ заставить все устройства иметь запятую (когда применимо или даже всегда) на цифровой клавиатуре?