2

我需要一个EditText自定义标题视图AlertDialog,由AlertDialog.Builder. 设置和显示此 EditText 会成功,将文本粘贴到它(通过长按)(包括调用 EditorActionListener 回调)也是如此。

但是没有可见的软输入,因此向其中添加文本非常不方便。我已经尝试过调用InputMethodManager.showSoftInput(),但是在创建/显示对话框之前和之后,无论是 in OnClickListener,还是在OnFocusChangeListenerextra中,都没有发生任何事情Runnable

让我绊倒的是,我有许多其他的 AlertDialogs,其中有很多EditTexts 可以按需要工作。自定义标题视图和内容视图之间是否存在概念差异?

4

1 回答 1

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 ......)。

于 2012-11-16T07:09:15.373 回答