即使使用android:inputType =“ textPassword”

时间:2019-07-13 11:45:46

标签: android android-preferences android-jetpack

我有以下代码

<androidx.preference.PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:android="http://schemas.android.com/apk/res/android">

        <EditTextPreference
            app:key="pref_password"
            app:title="Password"
            app:iconSpaceReserved="false"
            app:dialogTitle="Password"
            android:inputType="textPassword"/>

</androidx.preference.PreferenceScreen>

但是即使android:inputType="textPassword",编辑文本字段也不会被点遮住

我正在使用androidx。任何人都可以帮助

更新

我尝试按照评论者的建议进行追踪,但没有运气

<EditTextPreference
            android:key="pref_password"
            android:title="Password"
            app:iconSpaceReserved="false"
            android:dialogTitle="Password"
            android:inputType="textPassword"/>

1 个答案:

答案 0 :(得分:2)

直接在EditTextPreference上设置属性不适用于AndroidX库-因为EditTextPreference不是'EditText,因此不能这样工作。相反,您应使用BillingClient自定义EditText,以使其显示。

有关更多信息,请参见settings guide

使用代码进行编辑:

Java:

OnBindEditTextListener

科特琳:

EditTextPreference preference = findPreference("pref_password");

if (preference!= null) {
    preference.setOnBindEditTextListener(
            new EditTextPreference.OnBindEditTextListener() {
                @Override
                public void onBindEditText(@NonNull EditText editText) {
                    editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
                }
            });
}