首页 > 解决方案 > Android 键盘 InputConnection setSelection 不适用于 unicode?

问题描述

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

 Please give me an authentic answer buddy.

并做:

getCurrentInputConnection().setSelection(31, 43);

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

标签: androidandroid-softkeyboardcustom-keyboardandroid-input-method

解决方案


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

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);
    }

推荐阅读