Как мне получить Edittext как с телефонным вводом, так и с возможностью скрыть строку. Я знаю, что
android:inputType="textPassword"
скрывает строку, а
android:inputType="phone"
выводит интерфейс с клавиатурой.
Как совместить два?
Как мне получить Edittext как с телефонным вводом, так и с возможностью скрыть строку. Я знаю, что
android:inputType="textPassword"
скрывает строку, а
android:inputType="phone"
выводит интерфейс с клавиатурой.
Как совместить два?
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" />
Я считаю, что это то, что вы хотите?
android:inputType="numberPassword"
Изменить: во время вопроса (2010) это, возможно, не было в API, но для современного развития оно доступно.
Я не нашел подходящего решения этой проблемы. Решение, принятое dtmilano, не полностью работает. Если EditText сфокусирован в ландшафтном режиме, где у вас полноэкранная клавиатура, номера по-прежнему отображаются в виде чистого текста, а не в масках.
Я потратил значительное время на фактический код TextView, и причина этого в том, что они явно проверяют InputType на InputType.TYPE_CLASS_TEXT и, если я правильно помню, TYPE_MASK_CLASS. Поэтому, если вы включаете какой-либо другой тип InputType в эти границы (я думаю, что диапазон, используемый TYPE_CLASS_TEXT и TYPE_MASK_CLASS, является первым байтом), тогда он не будет распознаваться как пароль, который нуждается в маскировке.
Я знаю, что я сказал, довольно запутанно. Фактический код LOT более запутан. Честно говоря, я был очень потрясен кодом TextView. Это запутанный беспорядок, с жестко закодированными проверками повсюду. Ужасная практика кодирования, которая приводит к таким проблемам.
Эта проблема может быть решена без использования устаревшего android:password
. См. Мой ответ здесь.
Я не пробовал это, но было бы возможно совместить их так:
android:inputType="textPassword|phone"
поскольку inputType
может принимать несколько значений.