我需要EditText
作为AlertDialog
的自定义标题视图,由AlertDialog.Builder
构建。设置和显示此EditText平移,将文本粘贴到它(通过长按),包括调用EditorActionListener回调。
但是没有可见的软输入,因此添加文本非常不方便。我已经尝试过调用InputMethodManager.showSoftInput()
,但在创建/显示对话框之前和之后,OnClickListener
,OnFocusChangeListener
或Runnable
之内都没有任何反应。< / p>
让我恍惚的是,我有许多其他的AlertDialogs,其中有很多EditText
个符合要求。自定义标题视图和内容视图之间是否存在概念差异?
答案 0 :(得分:4)
<强>解决方案:强>
AlertDialog的AlertController设置阻止软输入的标志。因此,这样做:
AlertDialog.Builder builder = .... // initialize, set up
AlertDialog d = builder.show();
d.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
d.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
d.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
现在软输入显示,调整对话框的大小,一切正常。 (顺便说一句,感谢GrepCode ......)。