Android 硬键盘无法聚焦文本

Android 硬键盘无法聚焦文本,android,keyboard,android-edittext,Android,Keyboard,Android Edittext,我有一个共同的文本。这很奇怪,因为我用硬键盘时无法集中注意力。上下文条件: 打开Droid的硬键盘 开始活动 单击要输入的编辑文本 输入失败。按任意键时,编辑文本失去焦点 要获得焦点: 按Dpad,您将看到焦点从屏幕中的第一个小部件开始。最后关注目标文本。然后你可以输入。没有这个,你根本无法用硬键盘输入 软键盘没有这样的焦点问题 我使用的是安卓2.2。这是系统错误吗?我也有同样的问题。我有点同意杰伊的观点。通常,TabHost和/或TabActivity使用LocalActivityManage

我有一个共同的文本。这很奇怪,因为我用硬键盘时无法集中注意力。上下文条件:

  • 打开Droid的硬键盘
  • 开始活动
  • 单击要输入的编辑文本
  • 输入失败。按任意键时,编辑文本失去焦点
  • 要获得焦点: 按Dpad,您将看到焦点从屏幕中的第一个小部件开始。最后关注目标文本。然后你可以输入。没有这个,你根本无法用硬键盘输入

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


    我使用的是安卓2.2。这是系统错误吗?

    我也有同样的问题。我有点同意杰伊的观点。通常,TabHost和/或TabActivity使用LocalActivityManager跟踪FrameLayout元素中显示的嵌入式活动或适当的ContentStrategy组件。简单地说,这是一个典型的嵌入式活动/嵌入式视图布局问题。编辑文本位于占据触摸屏空间的最上面的活动/视图上,而实际上承载此活动/视图的核心活动可能会抓住InputMethodService焦点并使其远离编辑文本,仅适用于硬键盘场景。软键盘很好用

    我对编辑文本所做的一个更改是将InputType更改为纯十进制。因此,当编辑文本获得焦点时,软键盘显示的是数字键盘,而不是字母qwerty键盘。我在Motola Droid Pro模拟器上运行了它,我在Motodev网站的Eclipse插件中更新了它。显然,当我在为编辑文本指定焦点(软键盘显示数字键盘)后尝试从硬键盘输入文本时,在我单击“ALT+2”后,软键盘将重新加载为字母键盘,而编辑文本将完全失去焦点


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

    如上所述,这显然是硬键盘的错误。如果版面中有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,并在onKeyDown方法中使用它。

    我在使用EditText小部件作为密码字段时遇到了相同的问题。其他EditText小部件(密码和非密码)在其他布局中工作正常。如果重要的话,破损的小部件是ButtonBar样式的LinearLayout的一部分(尽管我认为这只是添加了一些填充和背景)。我猜EditText可能被其他东西包装了,然后就破损了。类似的情况是在滚动条中包装列表视图。我尝试使用一个单一的编辑文本,它是确定的。我会根据您提供的信息检查布局,稍后再回复。我仍然找不到任何解决方案。我所能找到的是:在EditText无法获得硬键盘焦点的地方,有一个TabHost作为顶部。知道吗?嗯,我的没有TabHost。我将尝试查看是否报告为bug(如果没有,则启动一个)。我遇到了类似的问题。我在一个框架布局中有一个线性布局的表单。FrameLayout也有一个TabHost,但即使我隐藏了tab host(可见性=无),也会出现同样的问题。似乎是某种观点结合的问题?在emulator 1.6和2.1中发生