3

我在文本字段中执行退格,并且我需要设置为 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 浏览器中提供了问题。

4

0 回答 0