我从头开始尝试使用软键盘,但在按下Next按钮时发现了一个问题。它在其他键盘上按预期工作,所以我认为这可能是他们在开发样本时没有考虑到的事情。我还没有尝试其他版本。
使用的版本:Android API 15 源代码来自 android-sdk/samples/android-15/SoftKeyboard
问题:如果您有一个包含两个文本字段的表单,则在按下下一个按钮(右下角的输入)后,光标不会转到下一个字段。
示例:可以尝试使用联系人应用程序:
- 打开联系人
- 点击某个联系人
- 单击操作栏顶部的编辑按钮
- 查看联系人的电子邮件,如果只有一个文本字段,请按 + 按钮,因此至少有 2 个文本字段
- 单击第一个文本字段以编辑电子邮件 #1
- 在软键盘示例上键入下一步按钮
- 光标会消失,不会转到下一个字段(有时会崩溃,但通常您只需再次触摸文本字段即可,一切正常)
在调试时我还没有发现任何问题,但是我在源代码中有些地方可以查看: 在com.example.android.softkeyboard.SoftKeyboard
课堂上:
在public boolean onKeyDown(int keyCode, KeyEvent event)
方法有:
case KeyEvent.KEYCODE_ENTER:
// Let the underlying text editor always handle these.
return false;
我看了一下,调试的时候掉到这里,看起来还可以,因为光标的变化不是软键盘处理的
我想到的另一种方法是
public void onStartInput(EditorInfo attribute, boolean restarting)
也许它没有将光标移到它所在的位置,所以它就消失了。但是我还没有找到解决方法,所以我不知道这是否真的发生了。