Android Edittext видимые символы, но без автозаполнения - PullRequest
2 голосов
/ 24 октября 2011

У меня есть EditText, который является полем пароля. Теперь я хочу установить флажок, чтобы пользователь мог решить, хочет ли он видеть пароль с * или в виде простого текста. Поэтому я построил

if (passwordShouldBeVisible) {
        etext_key1.setInputType(InputType.TYPE_CLASS_TEXT);
    } else {
        etext_key1.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT);
    }

Это прекрасно работает, но есть проблема в том, что, если пароль прост, автозаполнение клавиатуры попытается вам помочь. Есть ли шанс это исправить?

С уважением,

До

Ответы [ 2 ]

1 голос
/ 15 июля 2013

Возможно, я опоздал, но я думаю, что самое ясное решение:

EditText t =  ...;//here find your input
t.setInputType(t.getInputType() ^ EditorInfo.TYPE_TEXT_VARIATION_PASSWORD);

Здесь вы просто побитно переключаете флаг для ввода пароля, поэтому другие флаги (ввод числа Майбера и т. Д.) Остаются без изменений.

0 голосов
/ 24 октября 2011

Попробуйте это: eText_key1.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

В качестве альтернативы вы можете поместить следующее в XML-определение EditText: android:inputType="textFilter".

EDIT:

Вот пример, просто убедитесь, что вы определяете настройки в логике переключения и макете xml или инициализируете тип ввода в onCreate:

    setContentView(R.layout.edittext);

    Button switchButton = (Button) findViewById(R.id.switchbutton);
    final EditText editText = (EditText) findViewById(R.id.password);

    switchButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if (passwordShouldBeVisible) {
                editText.setInputType(InputType.TYPE_CLASS_TEXT
                        | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
            } else {
                editText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD
                        | InputType.TYPE_CLASS_TEXT
                        | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
            }
        }
    });

и вот файл XML, который я использую:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/password"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="text|textFilter"/>

    <Button
        android:id="@+id/switchbutton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Switch" />

</LinearLayout>
...