how to set input type to be numberdecimal but also allow a "-"
I ha开发者_Go百科ve set input type to be numberdecimal but also want to populate the editText with a "-" programmatically. I can add the text but then I am unable to edit the text as it doesn't confirm to the number decimal format. Any idea on how I can say inputtype is numberdecimal but a "-" can be allowed?
I was able to achieve this behavior by setting digits
xml attribute as follows:
<EditText
...
android:inputType="number"
android:digits="0123456789-"/>
Setting it up programatically (Set EditText Digits Programmatically):
weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789-"));
I managed to do that with:
android:inputType="number|numberSigned"
android:digits="0123456789-"
I found a very easy solution:
editText.setKeyListener(new DigitsKeyListener(true, true));
The first true
is for whether is signed input, the second true
is for decimal.
Hope that helps
You will have to write your own KeyListener. You could start by downloading the source of the NumberKeyListener and take it from there.
Martin
I am having one solution, which may helps you:
Suppose, You want to enter 2-3 numbers with "-" sign for e.g. 203-304-405.23-232.45,
then Allow user to enter this in EditText without setting any attributes.
and then you can Separate each numbers with "split()
" function , but be sure that there should be any separator sign in between the tokens.
then
String tokens[];
strInput = edittext1.getText.toString();
tokens = strInput.split(",");
then you can work with each tokens separately as tokens[0], tokens[1], for example:
num1 = tokens[0];
num2 = tokens[1];
Hope this helps you.
Enjoy!!
精彩评论