当前位置: 首页 > 知识库问答 >
问题:

编写一个Android系统应用程序,使用KeyEvents将文本插入文本字段。但扩展unicode字符不可打印

杨彦君
2023-03-14

所以我可以对控制字符使用CTL组合,对大写字母(如a、B)和字符(如!)使用SHIFT!,{(即基本拉丁文和标点符号)。

然而,我无法在Android中找到诸如、...等符号的组合。Ubuntu使用CTRL SHIFT U...后跟四个生成符号的数字的组合,但这似乎无法翻译为Android。

TL;DR:如何使用Android KeyEvents和KeyCharacter Map生成特殊符号?

更新:了解此资源:https://source.android.com/devices/input/key-character-map-files看起来我将不得不使用一个键组合,他们讨论了一个神奇的十六进制输入,但我已经尝试使用

1111后跟Alt Shift X(qwerty.kcm文件包含此项)。。。但它不会将unicode符号键入相应的1111。

有人能帮忙吗?

共有1个答案

胥良平
2023-03-14

我们能够找到答案。

第1步:更新Android操作系统的kcm文件(大多数情况下是Generic.kcm)。下面的例子是“X”按钮,但它确实可以应用于任何按钮。将alt-shift行为和assing魔法十六进制代码添加到alt-shift X的组合中。

key X {
    label:                              'X'
    base:                               'x'
    shift, capslock:                    'X'
    alt+shift:                          '\uef00'
}

步骤2:在应用程序服务中为1,2,3,4生成Keyevents,然后为Alt Shift X生成keyevent,您将能够打印字符“ሴ" .

阅读这些参考资料以获取更多信息。

https://source.android.com/devices/input/key-character-map-files
https://developer.android.com/reference/android/view/KeyEvent
https://android.stackexchange.com/questions/38405/how-to-insert-unicode-characters-by-their-hex-codes-using-usb-keyboard-on-ics
 类似资料:
  • 在我的公司,我们的任务是实现一个可自动扩展的文本字段。由于默认情况下不提供此功能,我们必须从头开始开发它。web上有许多可能性,如何实现它,但没有人为as工作,所以我们决定将代码放在so上,以便其他开发人员也可以使用它。由于无法展开文本字段,因此解决方案基于文本区域: 我希望它能帮助你:)

  • 问题内容: 我将日志保存到sdcard上的.txt文件中,但是一旦保存了两行,它就会覆盖它并重新开始? 这是我的代码: 在恢复中挂载/ data后,/ sdcard和/ data / media / 0中的日志文件会显示完整的日志历史记录,但在设备开机时不会显示完整的日志历史记录 问题答案: 这是完成的方式。以下示例代码在单击提交按钮后将详细信息保存到文件中: 希望这可以帮助 :)

  • 问题内容: 我正在从Google文档中提取数据,进行处理,然后将其写入文件(最终我将其粘贴到Wordpress页面中)。 它具有一些非ASCII符号。如何将这些安全地转换为可以在HTML源代码中使用的符号? 目前,我正在将所有内容都转换为,将它们全部合并为Python字符串,然后执行以下操作: 最后一行存在编码错误: 编解码器无法解码位置12286的字节:序数不在范围内(128) 部分解决方案:

  • 我首先将数据从文本字段导出到文本文件。为此,我使用了序列化。这是密码 要从文件中加载数据,我正在使用反序列化。下面是我使用的代码 我没有错误,文件加载程序正在显示。但当我选择文件时,程序不会将数据放入文本字段。我使用以下代码创建了一个加载按钮: 你认为我在代码中遗漏了什么吗?

  • 问题内容: 如果我的问题不是很具体,这就是我想要做的。我有一个具有两个JTextField,一个JLabel(“ Answer =”)和一个JTextField作为答案的计算器。 我有一个JButtons数组(0到9),允许用户单击它们以将数字添加到JTextField中,其中的光标处于活动状态…这是这里的问题。我只能让两个文本字段之一向它们添加数字,或者都向彼此添加相同的数字。 例如,如果我单击

  • 如果我的问题不是很具体,下面是我想做的。我有一个计算器,它有两个JTextField,一个JLabel(“Answer=”),一个JTextField作为答案。 我有一个JButton数组(0到9),允许用户点击它们,将数字添加到JTextField中,光标在其中处于活动状态。。。这就是问题所在。我只能让两个文本字段中的一个向它们添加数字,或者两者都向彼此添加相同的数字。 例如,如果我点击一个按钮