硬键盘无法对焦editText

我有一个共同的EditText。 这很奇怪,因为使用硬键盘时我无法聚焦。 上下文条件:

  1. 切换Droid的硬键盘
  2. 开始活动
  3. 点击editTextinput
  4. 无法input。 当你按任何键,editText失去了焦点。

要获得焦点:按Dpad,您将看到焦点从屏幕上的第一个小部件开始。 最后关注目标EditText。 那么你可以input。 没有这个,你不能用硬键盘input。

软键盘没有这样的焦点问题。

我正在使用android 2.2。 这是一个系统错误?

Solutions Collecting From Web of "硬键盘无法对焦editText"

如上所述,这显然是硬键盘的一个错误。 如果在布局中有EditText和TabHost,按下第一个键时,EditText会失去焦点,而按下键将被发送到该活动。 这是一个解决这个问题的方法。 在你的活动中实现这一点。

@Override public boolean onKeyDown(int keyCode, KeyEvent event){ final EditText myInputField = (EditText) findViewById(R.id.MyInputEditText); // this will happen on first key pressed on hard-keyboard only. Once myInputField // gets the focus again, it will automatically receive further key presses. if (!myInputField.hasFocus()){ myInputField.requestFocus(); myInputField.onKeyDown(keyCode, event); } return super.onKeyDown(keyCode, event); } 

如果您有多个EditText字段,则需要跟踪当前聚焦的EditText在类variables中,并在onKeyDown方法中使用它。

我也有同样的问题。 我有点同意Jay。 通常,TabHost和/或TabActivity利用LocalActivityManager跟踪embedded的活动或FrameLayout元素中显示的合适的ContentStrategy组件。 简而言之,这是一个典型的Embedded Activities / Embedded Views布局问题。 编辑文本位于触摸屏空间最顶端的活动/视图中,而核心活动实际上是托pipe此活动/视图,可能是抓取InputMethodService焦点并使其远离编辑文本,只适用于硬键盘的情况。 软键盘工作正常。

我对“编辑文本”所做的一项更改是将InputType更改为纯数字。 所以当编辑文本获得焦点时,软键盘显示一个数字键盘而不是按字母顺序的QWERTY键盘。 我在Motorla Droid Pro模拟器上运行它,我从Motodev网站的Eclipse插件中进行了更新。 显然,当我试图从编辑文本(并且软键盘显示一个数字键盘)的焦点后,尝试从硬键盘input文本时,我点击“ALT + 2”后,软键盘重新加载作为字母键盘,而编辑文本完全失去焦点。

似乎在Froyo发行版中对我来说是一个严重的错误,对布局(LinearLayout)中embedded其他布局(TabHost的FrameLayout)中的编辑文本视图的硬键盘设备的支持不足。