Android按钮删除emoji出现问号符

it2023-06-26  74

分析原因

由于表情是特殊字符,长度为2,网上的方法大概都是这样

val index = dataBinding.editText.selectionStart if(index > 0) { val editable: Editable = dataBinding.editText.editableText editable.delete(index - 1, index) }

这样删除了一个字符,然后会出现一个类似问号的字符

解决办法

开始也尝试判断是否为表情,但是太麻烦了,然后测试在键盘上点击回退是不会出现这种情况的,心想可不可以调用键盘的删除方法呢,然后就在网上看到了这篇文章,在此感谢作者原文链接

最后使用如下:

val keyCode = KeyEvent.KEYCODE_DEL val keyEventDown = KeyEvent(KeyEvent.ACTION_DOWN, keyCode) val keyEventUp = KeyEvent(KeyEvent.ACTION_UP, keyCode) dataBinding.editText.onKeyDown(keyCode, keyEventDown) dataBinding.editText.onKeyUp(keyCode, keyEventUp)

结尾

感谢原作者提供的方法。

最新回复(0)