i want to allow only numbers and period(.) in a android edit text. How to do this .. can any body help?
Use android:inputType="numberDecimal"
.
EDIT: Saw that you later wrote that you want to use this as an editText
for IP numbers. Don't use my solution then. For "digits" (not numbers) plus the dot this won't work.
Use android:numeric property.
Here an example http://www.androidpeople.com/android-edittext-numeric/
I found a tentative solution.
Click on the the EditText
in the design view and then find the input property on the far right corner.
Select Number
and textWebEditText
. Albeit it won't be the same as the view of the input type set for purely numbers, but it does away with process of having to press the number button at the bottom left of the keyboard every time.
Plus, unlike the EditText's that have only the number property set and thus the '.' period or decimal symbol is shown but cannot be selected, this input selection allows for the '.' symbol to be selectable.
Bellow is the XML property:
android:inputType="number|textWebEditText"
android:numeric="integer"
Setting the numeric property to integer is not necessary to accomplish this, but I just included it as an extra setting to force it. I am only taking in an IP Address in the EditText so I only need numbers. If your solution needs to account for more than strictly integers, then I would not include that line and find another setting, perhaps decimal
that would be more appropriate for your data.
Please note that because this solution makes it work and doesn't necessarily force a format on the input, (ie--> the user can input a '.' yes, but there is no limit to how many time the '.' can be input--> thus this would cause an error when you take the input and use it for Socket or Web Programming. Further input checking and looping may be required before assigning the input to an IP address or something similar. Just putting that out there.
Currently, specific default input types (numeric, phone number) use KeyListener. You'll just have to implement it to verify your data, and use setKeyListener in your EditText.
i have set this two lines in the textedit from my your_class.xml
android:inputType="numberDecimal"
android:digits="0123456789."
the first line is for setting the keybordart (only numbers and the dot). the second line only allows predetermined characters.
You need to make your EditText as numberSigned and numberDecimal. Add this line in your xml file -
android.inputType="numberSigned|numberDecimal"
Done :-)