我正在使用Android的标准软键盘输入法编辑器。我是在我的android模拟器上显示软键盘后,按下一个特定的键和一个编辑文本视图有焦点。我的目的是在软键盘出现在屏幕上后,将焦点放在软键盘上。我知道软键盘通常用于没有硬键盘的输入,但在我的例子中,我正在开发的应用程序需要这种功能,因为它将在定制设备上运行,而android的源代码正在被修改以实现自定义功能。有谁知道如何解决这个问题吗?触摸模式是否可能不允许在键盘上设置焦点?
编辑:澄清
抱歉我有点模棱两可。基本上,在下面的情况下,我需要软键盘提供以下功能。
现在的问题是,当我提到软键盘时,焦点仍然是编辑文本。我想知道是否有可能把焦点放在软键盘上,然后用硬键盘继续前进。正如我之前告诉过您的,这是自定义功能。也许我是以错误的方式处理这个问题,一个简单的弹出窗口和键盘视图就足够了。
劳伦,我认为你是对的,在某种意义上,标准软键盘是作为一种服务实现的,而不遵循常规视图的规则。
如有任何建议,敬请见谅。
谢谢
发布于 2011-09-16 13:26:14
我认为这里有两种“焦点”:
据我所知,在安卓系统中,只有EditText才是焦点。键盘在服务中运行,并获得触摸事件,感谢一个特殊的嵌体类。
如果您所需要的只是强制您的键盘可见性,您应该尝试从这个问题的答案。
编辑
我认为有两种方法可以做到这一点,这取决于您是否希望这个键盘是特定于某个活动或在任何地方都可用。
据我理解,负责显示keyboardview的inputmethodservice服务将不允许您实现这一点。
我的最佳建议是创建一个具有“可聚焦键”功能的专用键盘视图(扩展键盘视图将是一个很好的起点)。
您可以更改键盘可见性(使用View.VISIBLE和View.GONE)以使其出现和消失。
然后,您应该编写自己的行为代码,用焦点突出显示键,并相应地移动它。
您的活动还必须记住最后一个有焦点的EditText向其发送文本或keyCodes。
如果您需要这种行为在系统的任何地方都可用,那么您必须提供您自己的输入方法服务。我建议您看看这个职位以及SDK中的SoftKeyboard样品。
请注意,您还需要像上面描述的那样创建一个自定义KeyboardView,但不需要记住EditText焦点。
https://stackoverflow.com/questions/7444398
复制相似问题