Android 如何以编程方式将AppCompativeText设置为inputType textPassword

Android 如何以编程方式将AppCompativeText设置为inputType textPassword,android,Android,如何以编程方式将appcompatitedtext设置为inputType textPassword 我已经尝试了所有可能的方法来解决这个问题: pass_et = (AppCompatEditText) loginView.findViewById(R.id.pass_et); pass_et.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); pa

如何以编程方式将
appcompatitedtext
设置为
inputType textPassword

我已经尝试了所有可能的方法来解决这个问题:

pass_et = (AppCompatEditText) loginView.findViewById(R.id.pass_et);
     pass_et.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
            pass_et.setSelection(pass_et.getText().length());
            pass_et.setTransformationMethod(PasswordTransformationMethod.getInstance());
            pass_et.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

    pass_et.setTypeface(Typeface.DEFAULT);
            pass_et.setTransformationMethod(new PasswordTransformationMethod());

     pass_et.setTypeface(Typeface.createFromAsset(getApplicationContext().getAssets(), "fonts/Lato-Italic.ttf"));       pass_et.setTransformationMethod(new PasswordTransformationMethod());

    pass_et.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                     pass_et.setTypeface(Typeface.DEFAULT);
            pass_et.setTransformationMethod(new PasswordTransformationMethod());
                    pass_et.setInputType(

                            InputType.TYPE_TEXT_VARIATION_PASSWORD);

                    pass_et.setTransformationMethod(PasswordTransformationMethod.getInstance());
                }
            });
我也尝试过:

pass_et.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
mEdit.setTransformationMethod(PasswordTransformationMethod.getInstance()); 

不要调用
setTransformationMethod(PasswordTransformationMethod.getInstance())
,它是作为
setInputType
的一部分完成的。按住Ctrl键并单击方法名称以查看源代码

当您将“输入类型”设置为“密码”时,字体将自动设置为单空格。因此,在
setInputType
之后设置字体


由于您已经需要在设置好所有内容后调用
setTypeface
,因此您最好使用XML属性。然后在代码中设置字体。

我通过以下方法解决了我的问题:

doOnTextChanged { text, start, count, after ->
            inputType = EditorInfo.TYPE_CLASS_TEXT or EditorInfo.TYPE_TEXT_VARIATION_PASSWORD
            setSelection(text?.length ?: 0)
}

这可能有助于传递设置输入类型(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);setTransformationMethod(PasswordTransformationMethod.getInstance());我试过了,但没有用,如果我在xml文件中添加textPassword,它可以工作,但字体正在更改,它与我在应用程序中应用的字体不同。您可以使用按钮更改您的问题,以包括额外的信息。您的问题被错误地提出。设置输入类型有效,但会丢失字体,对吗?相应地编辑您的问题。