我需要在InputMethod类中的光标前获取整个文本字符串。 getTextBeforeCursor()只获取“n”个字符,但我不知道文本的长度。
答案 0 :(得分:1)
见documentation。看来你可以这样做:
getCurrentInputConnection().getTextBeforeCursor(100, 0);
或其他一些大数字,因为它只接受来自输入的文本 - 而不是所有'n'字符。
答案 1 :(得分:1)
尝试一下。这应该可行。
//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();
答案 2 :(得分:0)
如上所述,您可以使用大数字的getTextBeforeCursor()。如果它返回相同长度的字符串,您可以尝试获得更大的字符串。但要小心,一些应用程序,如三星的电子邮件应用程序返回全长字符串!即使你输入1个字符。