【发布时间】:2017-05-26 04:24:39
【问题描述】:
我已经实现了一个带有内置表情符号键盘的 android 软键盘。
我的问题是退格按钮,当我删除一个字符时它没问题,但是当我删除一个表情符号时它做得不好。 代码:
final EmojiconsPopup popup = new EmojiconsPopup(kv.getRootView(), this);
popup.setSizeForSoftKeyboard();
popup.setOnEmojiconBackspaceClickedListener(new EmojiconsPopup.OnEmojiconBackspaceClickedListener() {
@Override
public void onEmojiconBackspaceClicked(View v) {
InputConnection ic = getCurrentInputConnection();
ic.deleteSurroundingText(1, 0);
}
});
如果我将行改为
ic.deleteSurroundingText(2, 0);
emojis 删除得很好,但是chars 会一次删除两个。
关于如何解决这个问题的任何想法?
更新
经过一番调查,我发现一些表情符号是一个字符(如普通字母)和一些两个字符,关于如何区分它们有什么想法吗?
【问题讨论】:
-
如何检查被删除的字符/表情符号并相应地使用
ic.deleteSurroundingText()? -
这就是我想要做的,我设法得到了最后一个字符,但我怎么知道它是否是表情符号?
-
你可以试试这个answer,你可以拆分字符串的最后两个字符,检查它是否匹配正则表达式,然后相应地删除它。
-
设法用stackoverflow.com/q/41609277/7079340解决了这个问题
标签: android keyboard android-softkeyboard