Android:InputConnection - 如何获得composingtext

时间:2013-09-10 17:48:38

标签: android

我在文本字段中做退格键,我需要设置为composingText字或者它在光标位置之前离开的部分。每次按退格键时我都必须这样做。所以我的步骤必须是:

  • 获取最后一个单词(或部分单词)的大小;
  • 将其作为撰写文本。

我尝试这样做:

ic.setSelection(startWordPosition, word.length());
ic.setComposingText(word, 1);

一切正常,而我不测试像“a.a”这样的字符串中的退格。它选择全部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.0版Android和最新版本的标准版Android浏览器中提供了问题。

0 个答案:

没有答案