使用完成按钮关闭我的自定义键盘

Posted

技术标签:

【中文标题】使用完成按钮关闭我的自定义键盘【英文标题】:Use done button to close my custom keyboard 【发布时间】:2021-01-30 03:07:36 【问题描述】:

我正在 android studio 中为 android 制作一个自定义键盘,我几乎已经实现了基本键盘所需的所有基本功能,但是当我按下右下角的完成键时,我正在努力弄清楚如何关闭我的键盘角落。

android 应用程序中的大多数文本框都包含一个 imeOption,指定完成键要执行的操作,例如 android:imeOptions="actionGo" 用于 google chrome url 栏中,并且要在完成键上进行 chrome 搜索,我必须使用 inputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_ENTER)); 来制作它工作和android:imeOptions="actionNone" android:imeOptions="actionSearch" 这工作正常inputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER)); 但我不知道我应该为android:imeOptions="actionNext"android:imeOptions="actionDone" 做什么

【问题讨论】:

【参考方案1】:

这取决于视图的位置。就好像它是一个编辑文本和它在视图层次结构中的最后一个视图,那么你可以设置它的视图的 android:imeOptions="actionDone"。这将隐藏键盘。并且 android:imeOptions="actionNext" 如果在任何视图中使用,那么它会将焦点移动到下一个编辑文本(如果有的话)。

我希望我理解你的问题。如果不是请详细说明。我很乐意提供帮助。

【讨论】:

是的,这就是它们的工作方式,这些操作(关闭键盘并将焦点切换到下一个视图)由位于任何典型键盘右下角的称为 enter 或 done 键的键执行。我的问题是我正在创建自己的“自定义键盘”,它应该执行此操作,例如关闭键盘并将焦点更改为相对于相应视图的下一个视图,但我无法在我的“自定义键盘”中进行这项工作 @RajeshNadar 你能分享你的代码吗?因为这样很容易识别问题。 我将InputMethodService 用于我的键盘,OnKeyboardActionListener 用于监控输入。我正在使用onKey 函数来检查按下了哪个键并使用 inputConnection 对象在编辑文本上执行任务这是如何完成的public void onKey(int primaryCode, int[] keyCodes) InputConnection inputConnection = getCurrentInputConnection(); if (inputConnection != null) switch (primaryCode) case Keyboard.KEYCODE_DONE: @RajeshNadar 我无法理解您的问题。如果你能给我代码,我可以直接运行并排除故障,那就更好了 如何与您分享我的项目?

以上是关于使用完成按钮关闭我的自定义键盘的主要内容,如果未能解决你的问题,请参考以下文章

如何在自定义键盘中关闭键盘?

iphone中的自定义键盘按钮

iOS 带有振动的自定义键盘

使用带有 TextField 的自定义表格视图单元格关闭数字键盘

Kotlin 中的自定义数字键盘

如何使用Swift在Xcode上创建自定义数字键盘? [关闭]