I have 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 do
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 managed to do that with:
android:inputType="number|numberSigned"
android:digits="0123456789-"
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!!
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
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-"));