Как использовать EditTextPreference как текстовое поле с замаскированным паролем?

У меня очень простой вопрос:
У меня есть диалог EditTextPreference, который я хочу использовать для получения пароля пользователя, и я хочу, чтобы он был замаскирован.

Как я могу это сделать?

Ответ 1

Вот краткий пример с использованием xml:

<EditTextPreference
    android:key="@string/key"
    android:title="@string/title"
    android:summary="@string/summary"   
    android:inputType="textPassword" />

Или вы можете использовать numberPassword вместо textPassword.

Ответ 2

android:inputType="numberPassword" не работает для меня. Eclipse сказал мне, что для этого атрибута не допускаются значения String. Поэтому я использовал следующее:

<EditTextPreference
    android:key="@string/key"
    android:title="@string/title"
    android:summary="@string/summary"   
    android:inputType="number"
    android:password="true" />

Это предоставило мне EditTextPreference с пунктиром textdisplay и цифровой клавиатурой для ввода.

Ответ 3

Если вы хотите, чтобы маска пароля сохранялась и после поворота устройства, достаточно добавить следующий imeOption:

в макете редактирования текста android:imeOptions="flagNoExtractUi"

или программно yourEditText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);