Изменить текст для пароля при вводе номера телефона? (Андроид) - PullRequest
26 голосов
/ 07 января 2010

Как мне получить Edittext как с телефонным входом, так и с возможностью скрыть строку.Я знаю, что

android:inputType="textPassword"

скрывает строку, в то время как

android:inputType="phone"

вызывает интерфейс клавиатуры.

Как объединить два?

Ответы [ 5 ]

33 голосов
/ 07 января 2010

android:password устарела, но AFAIK - единственный путь, потому что android:inputType="phone|textPassword" игнорируется ...

<EditText
    android:id="@+id/EditText01"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:password="true"
    android:inputType="phone" />
5 голосов
/ 04 января 2014

Я считаю, что это то, что вы хотите?

android:inputType="numberPassword"

Редактировать: На момент вопроса (2010 г.) этого, возможно, не было в API, но для современной разработки он доступен.

2 голосов
/ 27 мая 2011

Я не нашел подходящего решения этой проблемы. Принятое решение dtmilano не полностью работает. Если EditText сфокусирован в альбомном режиме, где у вас полноэкранная клавиатура, цифры по-прежнему отображаются в виде обычного текста, без маскировки.

Я потратил значительное время на просмотр самого кода TextView, и причина этой проблемы в том, что они явно проверяют InputType для InputType.TYPE_CLASS_TEXT и, если я правильно помню, TYPE_MASK_CLASS. Так что, если вы включите любой другой InputType в эти границы (я думаю, диапазон, используемый TYPE_CLASS_TEXT и TYPE_MASK_CLASS, является первым байтом), тогда он не будет распознаваться как пароль, который нужно маскировать.

Я знаю, что я сказал, это довольно странно. Фактический код намного более запутанный. Я был довольно потрясен кодом TextView, если честно. Это запутанный беспорядок, с жестко закодированными чеками повсюду. Ужасная практика кодирования, которая приводит к таким проблемам.

1 голос
/ 25 октября 2010

Эта проблема может быть решена без использования устаревших android:password. Смотрите мой ответ здесь .

0 голосов
/ 07 января 2010

Я не пробовал это, но возможно было бы объединить эти два так:

android:inputType="textPassword|phone"

, поскольку inputType может принимать несколько значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...