Как EditText может принимать только целые или плавающие значения?

Я новичок в разработке Android. В моем проекте я использую EditText, но я хочу заставить его принимать только целочисленное значение или значение с плавающей точкой. Как я могу это сделать?

3 ответа

Решение

Если вы хотите использовать десятичное число только на вашем EditText

используйте атрибут xml android:inputType="numberDecimal" в вашем виджете EditText ваше объявление EditText будет выглядеть так:

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="numberDecimal" />

Если вы хотите использовать десятичное число со знаком, чем объединить два атрибута Xml android:inputType="numberDecimal" а также android:inputType="numberSigned", Ваше объявление EditText будет выглядеть так:

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="numberDecimal|numberSigned" >

</EditText>

Использовать Java

для ввода как целого числа, так и числа с плавающей точкой
edit.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);

для ввода только целое число
edit.setInputType(InputType.TYPE_CLASS_NUMBER);

В настоящее время используется тег Android:inputType недостаточно.

См. Пример https://github.com/udacity/ud851-Exercises/tree/student/Lesson06-Visualizer-Preferences/T06.10-Exercise-EditTextPreferenceConstraints

Вам нужно создать PreferenceChangeListener, чтобы проверить заполненный EditText, прежде чем изменить предпочтение.

Другие вопросы по тегам