Android |如何以编程方式禁用输入的自动建议?

Android | How disable auto-suggestion of an input programmatically?

在我的一个应用程序中,我试图在对话框中输入密码确认。该对话框完全以编程方式构建。我在将输入类型设置为密码时遇到了一些问题,但它正在工作。后来才发现键盘有自动提示选项

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 配置看到了很多解决方案,但它不适合我的应用程序。

提前致谢。

要关闭自动建议,请更改此行:

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);

在 onCreate->setContentView() 下方插入:

getWindow().getDecorView().setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);