Configure android EditText to allow decimals and n

2019-03-22 14:49发布

问题:

I have an Android EditText that I want to have the number keyboard come up.

If I set the android:inputType to numberSigned, I get the number keyboard and the ability to type in negatives. However this won't let me use decimals. If I use the numberDecimal inputType I can use decimals but not negatives.

How do you get the number keyboard with the ability to type in decimals and negatives?

回答1:

You are just missing this in your EditText,

android:inputType="numberDecimal|numberSigned"


回答2:

We can use,

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

if we need to use programmatically..



回答3:

See this link may be it's help you http://developer.android.com/resources/articles/creating-input-method.html

and The possible values for the android:inputtype are:

•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


回答4:

Some phones have the decimal and negative in the same button and makes it unable to do negatives. I figured out a way you could separate the buttons by simply adding-

android:inputType="numberDecimal|numberSigned|textPersonName"

android:digits="0123456789-."

That way you still have the number keyboard layout but the negative and decimal buttons will be separate and you cannot use any other digit that messes up the app.



回答5:

this worked for me programmatically

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