在我的一个应用程序中,我试图在对话框中输入密码。该对话框完全以编程方式构建。我有一些问题要将输入的类型设置为密码,但它正在工作。后来,我发现键盘上有自动建议选项。
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle(...);
builder.setIcon(...);
builder.setMessage(...);
builder.setCancelable(false);
EditText etForcePassword = new EditText(mContext);
etForcePassword.setSingleLine();
etForcePassword.setHint(...);
etForcePassword.setImeOptions(EditorInfo.IME_ACTION_DONE);
etForcePassword.setTransformationMethod(PasswordTransformationMethod.getInstance());
etForcePassword.setInputType(EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS | EditorInfo.TYPE_TEXT_VARIATION_FILTER);
builder.setView(etForcePassword, top, right, bottom, left);
AlertDialog alertDialog = builder.create();
alertDialog.show();`
我通过设置InputType
或仅使用XML配置看到了很多解决方案,但它不适合我的应用程序。
提前致谢。
答案 0 :(得分:4)
要关闭自动建议,请更改此行:
etForcePassword.setInputType(EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS | EditorInfo.TYPE_TEXT_VARIATION_FILTER);
到这一行:
etForcePassword.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
答案 1 :(得分:0)
在 onCreate->setContentView() 下面插入:
getWindow().getDecorView().setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);