Android 键盘 InputConnection setSelection 不适用于 unicode?

Posted

技术标签:

【中文标题】Android 键盘 InputConnection setSelection 不适用于 unicode?【英文标题】:Android keyboard InputConnection setSelection doesn't work well with unicode? 【发布时间】:2021-08-08 02:41:12 【问题描述】:

在编辑器中粘贴带有 unicode 的文本时,例如:

???????? Please give me an authentic answer buddy.

然后做:

getCurrentInputConnection().setSelection(31, 43);

所选文本不在正确位置。可能是因为开头有两个特殊的unicode字符?

【问题讨论】:

【参考方案1】:

我相信这个功能可以解决问题:

public void setSelectionByUnicodePosition(InputConnection inputConnection, String currentString, int start, int end)
        int firstUnicodeposition  = currentString.offsetByCodePoints(0, start);
        int secondUnicodePosition = currentString.offsetByCodePoints(0, end);
        inputConnection.setSelection(firstUnicodeposition, secondUnicodePosition);
    

【讨论】:

以上是关于Android 键盘 InputConnection setSelection 不适用于 unicode?的主要内容,如果未能解决你的问题,请参考以下文章

android 软键盘弹起怎么让view上移

android怎么点击空白处吧软键盘消失

android键盘怎么输入中文?

android系统下怎么广播键盘的输入消息

android软键盘挡住了下面的按钮,有啥办法解决么

H5如何对android和ios手机软键盘的监听