Настройте Android EditText, чтобы разрешить десятичные и отрицательные - PullRequest
31 голосов
/ 25 сентября 2011

У меня есть Android EditText, для которого мне нужна цифровая клавиатура.

Если я установлю для android: inputType numberSigned, я получу цифровую клавиатуру и возможность печатать негативы. Однако это не позволит мне использовать десятичные дроби. Если я использую numberDecimal inputType, я могу использовать десятичные числа, но не отрицательные.

Как получить цифровую клавиатуру с возможностью ввода десятичных и отрицательных чисел?

Ответы [ 5 ]

81 голосов
/ 25 сентября 2011

Вам просто не хватает этого в вашем EditText,

android:inputType="numberDecimal|numberSigned"
13 голосов
/ 26 ноября 2014

Мы можем использовать,

edit_text.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED);

если нам нужно использовать программно ..

4 голосов
/ 25 сентября 2011

См. Эту ссылку, может быть, это поможет вам http://developer.android.com/resources/articles/creating-input-method.html

и возможные значения для android: inputtype:

•none
•text
•textCapCharacters
•textCapWords
•textCapSentences
•textAutoCorrect
•textAutoComplete
•textMultiLine
•textImeMultiLine
•textNoSuggestions
•textUri
•textEmailAddress
•textEmailSubject
•textShortMessage
•textLongMessage
•textPersonName
•textPostalAddress
•textPassword
•textVisiblePassword
•textWebEditText
•textFilter
•textPhonetic
•textWebEmailAddress
•textWebPassword
•number
•numberSigned
•numberDecimal
•numberPassword
•phone
•datetime
•date
•time
1 голос
/ 14 мая 2018

Некоторые телефоны имеют десятичные и отрицательные значения в одной и той же кнопке и не позволяют делать негативы.Я придумал, как можно разделить кнопки, просто добавив: *

android:inputType="numberDecimal|numberSigned|textPersonName"

android: digits = "0123456789 -."и десятичные кнопки будут разделены, и вы не можете использовать любую другую цифру, которая испортит приложение.

0 голосов
/ 13 июля 2018

это сработало для меня программно

editText.setInputType (InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED);

...