Используйте InputType Number, но отформатируйте живой текст для редактирования в формате телефонного номера - PullRequest
0 голосов
/ 28 февраля 2019

Таким образом, самый простой способ для редактирования текста ввода - это использовать тип ввода телефона.Проблема в том, что это дает вам несколько других символов, кроме цифр.И я не хочу, чтобы пользователь мог печатать эти символы.

  • Я пытался прослушивать только цифры, выполняя операции android: при этом цифры больше не форматируют ввод.

Есть ли уловка, которую я мог бы сделать, чтобы заставить это работать?Другой, тогда написание пользовательского textWatcher, который форматирует текст.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Вы должны использовать, как указал Афира:

  android:inputType="number"

, а если вы хотите десятичные числа, то:

android:inputType="numberDecimal"
0 голосов
/ 28 февраля 2019

Если вы хотите отображать только цифры на клавиатуре, как на этом скриншоте enter image description here

Вы должны использовать numberPassword тип ввода вместо phone тип ввода

  android:inputType="numberPassword"

Но когда вы применяете это, ваши записи в editText отображаются как маркеры, потому что inputType - это numberPassword, поэтому для решения этой проблемы создайте новый класс Java, например:

public class NumberKeyPadTransformationMethod extends PasswordTransformationMethod {
@Override
public CharSequence getTransformation(CharSequence source, View view) {
    return source;
}}

И в вашем main activity, где вы получаете идентификаторы edittext или где вы используете это edittext, вам нужно просто добавить одну строку кода

editText.setTransformationMethod(new NumberKeyPadTransformationMethod());

Вся ваша проблема решится.

Надеюсь, это поможет вам.

...