当一个活动开始时,安卓键盘弹出的问题

3

我正在开发一个Android应用程序,在以下情况下遇到了问题:

  1. 在第一个活动列表中,用户触摸列表项
  2. 弹出一个带有所选项目子类别列表的对话框窗口
  3. 用户选择子类别
  4. 下一个活动以所选项目和子类别开始。请注意:
    • 下一个活动屏幕上的第一个元素是EditText字段
    • 下一个活动的第二个元素是一个按钮,在 onCreate()方法中我设置了按钮的焦点speakNameBtn.requestFocus();

这里的问题是:如果用户在步骤3中通过触摸在列表中选择子类别,则在下一个屏幕上,用户会看到弹出键盘,而不是按钮具有焦点的EditText字段。

问题 - 如何防止键盘显示?

似乎第一个屏幕对话框上的触摸事件在某种程度上传递到了下一个活动中。如果我使用球来选择子类别而不是触摸它,一切都按预期工作 - 焦点设置在按钮上,我看不到键盘。

非常感谢任何想法。


https://dev59.com/iHI_5IYBdhLWcg3wBub4 给出了一个更完整的答案。 - rjrjr
1个回答

8
将此代码放在EditText上方:
<!-- Dummy item to prevent AutoCompleteTextView from receiving focus -->
<LinearLayout
    android:focusable="true" android:focusableInTouchMode="true"
    android:layout_width="0px" android:layout_height="0px"/>

我几个月前从一个论坛上找到了这个代码,它可以正常工作...但是我再也找不到它了,所以我将它从我的项目中复制出来。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接