Как установить позицию курсора в программной клавиатуре (не в EditText или TextView !!!) в Android? - PullRequest
0 голосов
/ 11 декабря 2011

Следующий код работает только для 1000 символов.Если имеется более 1000 символов, курсор вернется к концу 999 символов и снова начнет работать.

Это связано с тем, что getTextBeforeCursor(n,flag) может предложить только число n символов перед текущим курсором.позиция.Однако в EditText мы можем получить весь текст, используя метод getText(), и мы также можем получить длину.Но как получить длину всего текста в области текста для составления текста, чтобы я мог установить положение курсора в любом месте.

InputConnection ic = getCurrentInputConnection();
ic = getCurrentInputConnection();

String str = ic.getTextBeforeCursor(1000,0).toString();
ic.setSelection(str.length()-1,str.length()-1);

1 Ответ

0 голосов
/ 14 декабря 2013

Это очень просто.Я только что получил решение, когда я работаю на программной клавиатуре.

CharSequence textBeforeCursor = getCurrentInputConnection().getTextBeforeCursor(1000, 0);

CharSequence textAfterCursor = getCurrentInputConnection().getTextAfterCursor(1000, 0);

тогда, просто вычисляя и добавляя длины выше двух значений, вы можете получить длину составляющей текстовой области.

Если возникнут проблемы, просто сообщите мне.

...