Reputation: 578
I am new to Android development. In my project, I’m using EditText, but I want to force it to only accept an integer or float value. How can I do that?
Upvotes: 31
Views: 39196
Reputation: 31466
If you want to use Decimal Number only on your EditText
use the xml attribute android:inputType="numberDecimal"
in your EditText widget
your EditText
declaration will be like this:
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" />
If you want to use Signed Decimal Number than combine the two Xml attributes android:inputType="numberDecimal"
and android:inputType="numberSigned"
. Your EditText
declaration will be like this:
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal|numberSigned" >
</EditText>
Upvotes: 67
Reputation: 60923
Use Java
for input both integer and float
edit.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
for input only integer
edit.setInputType(InputType.TYPE_CLASS_NUMBER);
Upvotes: 5
Reputation: 1
Currently using android tag:inputType is not enough.
You need create a PreferenceChangeListener to verify the filled in EditText, before preference changed.
Upvotes: 0