我需要在InputMethod类中的光标之前获取整个文本字符串。getTextBeforeCursor()只获取"n"个字符,但我不知道文本的长度。
请参阅本文档。看来你可以做到这一点:
getCurrentInputConnection().getTextBeforeCursor(100, 0);
或者其他一些大数字,因为它只从输入中提取文本,而不是所有的"n"字符。
试试这个。这应该行得通。
//get the input connection first
InputConnection iconn = getCurrentInputConnection();
//get the total text first.
String full_text=iconn.getExtractedText(new ExtractedTextRequest(),0).text.toString();
//get whole text before the cursor
String before_text=iconn.getTextBeforeCursor(full_text.length(),0).toString();
如上所述,您可以使用带有大数字的getTextBeforeCursor()。若它返回相同长度的字符串,您可以尝试获取更大的字符串。但要小心,有些应用程序,比如三星的电子邮件应用程序,会返回全长字符串!即使您键入1个字符。