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

时间:2017-06-12 20:40:47

标签: android input dialog passwords autosuggest

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

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

提前致谢。

2 个答案:

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