我将EditText渲染为列表样式AlertDialog的一个元素(由默认的ListVIEw实现支持).我有点期望这种情况不会改变EditText的行为,但确实如此:点击EditText不再产生软键盘.
经过一个小时的焦点设置和点击处理程序后,我厌倦了并调试到inputMethodManager.showSoftinput(),并发现:
public boolean showSoftinput(VIEw vIEw, int flags, ResultReceiver resultReceiver) { ... if (mServedVIEw != vIEw && (mServedVIEw == null || !mServedVIEw.checkinputConnectionProxy(vIEw))) { return false; } ... }}
这里的问题是mServedVIEw是支持对话框的ListVIEw,而vIEw是EditText,而ListVIEw.checkinputConnectionProxy()只是在ListVIEw的默认实现中返回false(被子类覆盖).
更糟糕的是,我找不到设置自定义ListVIEw的方法,该ListVIEw允许代理IME请求; AlertDialog.Builder.setVIEw()接受自定义ListVIEw,但这不是inputMethodManager看到的ListVIEw.
有什么建议如何解决这个问题?
解决方法:
你有没有试过这样的事情,如果你有道歉的话
getBaseContext().getwindow().setSoftinputMode(WindowManager.LayoutParams.soFT_input_STATE_ALWAYS_VISIBLE);
总结 以上是内存溢出为你收集整理的android – 在对话框中触发EditText的软键盘的任何无痛方法?全部内容,希望文章能够帮你解决android – 在对话框中触发EditText的软键盘的任何无痛方法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)