我在文本字段中执行退格,并且我需要设置为 composingText 单词或其部分,它在光标位置之前离开。每次按退格键时,我都必须这样做。所以我的步骤必须是:
- 获取最后一个单词(或其中一部分)的大小;
- 使其成为撰写文本。
我试着这样做:
ic.setSelection(startWordPosition, word.length());
ic.setComposingText(word, 1);
一切都很好,虽然我不测试像“aa”这样的字符串中的退格键。它选择所有 3 个字符,但设置后,仅替换点后的部分。
然后我试着让它像这样:
ic.deleteSurroundingText(word.length(),0);
ic.setComposingText(word, 1);
但它不能正常工作,有时会删除我的话之前的文本(可能是因为它目前正在撰写)。
只需找到另一种看起来正确的方法:
ic.finishComposingText();
ic.deleteSurroundingText(word.length(),0);
ic.setComposingText(word, 1);
ic.setSelection(fullInputedString.length(),fullInputedString.length());
这是对的吗?
它应该如何以正确的方式?
目标 SDK=8
谢谢!
UPD: 我找到了下一个解决方案
ic.finishComposingText();
ic.deleteSurroundingText(wordForInsert.length(), 0);
ic.setComposingText(wordForInsert, 1);
对于最新的 android 版本,我使用适当的方法:
ic.setComposingRegion();
但是这个解决方案在 4.0v Android 和最新版本的标准 android 浏览器中提供了问题。