首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在EditText中使用AlertDialog.Builder时,软键盘不弹出

在EditText中使用AlertDialog.Builder时,软键盘不弹出
EN

Stack Overflow用户
提问于 2010-08-11 12:14:48
回答 14查看 46.5K关注 0票数 121

我使用AlertDialog.Builder来创建一个输入框,使用EditText作为输入法。

不幸的是,尽管EditText处于焦点位置,但软键盘无法弹出,除非您再次明确触摸它。

有没有办法强制它弹出?

我尝试了以下方法,在(AlertDialog.Builder).show();之后执行,但都没有用。

代码语言:javascript
复制
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(input, InputMethodManager.SHOW_FORCED);

有人能帮上忙吗?

谢谢!!

EN

回答 14

Stack Overflow用户

发布于 2011-07-20 17:00:15

我做了这样一件事

代码语言:javascript
复制
AlertDialog.Builder b = new AlertDialog.Builder(this);//....
AlertDialog dialog = b.create();

dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

dialog.show();
票数 227
EN

Stack Overflow用户

发布于 2013-06-07 05:40:00

我成功地解决了这个问题:

代码语言:javascript
复制
Dialog = builder.create();
Dialog.show();
Dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE  | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
Dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
票数 31
EN

Stack Overflow用户

发布于 2014-05-20 22:16:07

我发现同样的代码在平板电脑上运行正常,键盘确实会弹出,但在手机上就不会,所以进一步研究,似乎指向了“调整”选项。

我正在用这个,感觉干净多了。

代码语言:javascript
复制
AlertDialog d = builder.create();
d.getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
d.show();
票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3455235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档