【发布时间】:2021-05-28 17:34:06
【问题描述】:
我正在创建一个带有键盘翻译的应用程序,其中翻译了键盘输入的输入,我想用用户输入的输入替换翻译后的文本。为此我使用了以下方法
currentInputConnection.getExtractedText(ExtractedTextRequest(), 0).text = firstTranslation
但是这种方法不起作用。如何用原文替换我的翻译文本
【问题讨论】:
我正在创建一个带有键盘翻译的应用程序,其中翻译了键盘输入的输入,我想用用户输入的输入替换翻译后的文本。为此我使用了以下方法
currentInputConnection.getExtractedText(ExtractedTextRequest(), 0).text = firstTranslation
但是这种方法不起作用。如何用原文替换我的翻译文本
【问题讨论】:
CharSequence currentText = inputConnection.getExtractedText(new ExtractedTextRequest(), 0).text;
CharSequence before = inputConnection.getTextBeforeCursor(currentText.length(),0);
CharSequence after = inputConnection.getTextAfterCursor(currentText.length(),0);
//Replace code
//inputConnection.setComposingRegion(start of word,end of word);
inputConnection.setComposingRegion(after.length(),before.length());
inputConnection.setComposingText("Translate Text here",currentText.length());
在 currenttext 我们得到用户输入的文本, 而在Before & After我们得到currenttext的开始&结束光标值
所以现在我们必须设置替换文本的范围,你想替换多少个字符 我们在 setcomposingregion() 中设置,然后我们必须在 setComposingtext() 中设置 TExt。
所有这些代码都在 onkeyUp 里面。
【讨论】: