2012-11-12 44 views
2

我需要一个EditText作为AlertDialog中的自定义标题视图,由AlertDialog.Builder构建。设置和显示这个EditText会弹出,就像粘贴文本(通过长按),包括被调用的EditorActionListener回调。带有Edittext的AlertDialog作为自定义标题视图

但是没有可见的软输入,因此添加文本相当不方便。我已经尝试过拨打InputMethodManager.showSoftInput(),但没有任何反应,无论是在创建/显示对话框之前和之后,也没有在OnClickListener中,也没有在OnFocusChangeListener中,也没有在额外的Runnable中。

是什么让我很沮丧是,我有很多其他的AlertDialogs有很多EditText s在他们的工作正常。自定义标题视图和内容视图之间有概念上的区别吗?

回答

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的方式......)。

相关问题