Как замаскировать EditText для ввода в определенном формате - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь ограничить то, что мой EditText принимает в качестве входных данных.Я хочу, чтобы это заняло максимум 21 million (20,999,999.99999999).Можно ли добиться> если, то как мне это сделать?Я пытался использовать InputFilter с шаблоном [0-9]{0,9}+((\.[0-9]{0,7})?)||(\.)?.Покажите мне, как это сделать.

1 Ответ

0 голосов
/ 01 июня 2018

Ну, я прочитал ответ Франческо и ваш комментарий тоже.Если вам нужно проверить десятичную точку, вы можете попробовать это ниже.

EditText someText = findViewById(R.id.someValueInputHi);
String paw = someText.getText().toString().replaceAll("\\s+", ""); //rem unusual spaces
Double someInput = Double.parseDouble(paw);
if (someInput < 5.3465726543d | someInput > 3.7834657836d) {
    //Ok now
} else {
    //Oops, no man
}

Вы берете значение только между 5.3465726543 и 3.7834657836 .

Почему удваивается?

Как видно из названия, удвоение имеет двойную точность с плавающей точкой.В общем случае, двойное число имеет 15 десятичных знаков точности , а число с плавающей точкой - 7.

EDIT: Ответ Франческо теперь удален.

...