0

次のコードは、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);
4

1 に答える 1

0

とても簡単です。ソフトキーボードで作業しているときに解決策を得ました。

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

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

次に、上記の 2 つの値の長さを計算して加算するだけで、テキスト領域を構成する長さを取得できます。

何か問題があれば、私に知らせてください。

于 2013-12-14T14:01:11.407 に答える