2011-02-24 46 views
3

我开发一个Android应用程序,并在下列情况下一个问题:问题与Android键盘显示出来当活动开始

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

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

问题 - 我该如何防止该键盘出现?

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

任何想法将不胜感激。

+0

http://stackoverflow.com/questions/1555109给出了一个更完整的答案。 – rjrjr

回答

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"/> 

我把它从一个论坛,几个月前,它工作得很好......不可能再找到它,所以我从我的项目之一粘贴。

+0

这个技巧很有效!谢谢! – Damir

相关问题