0

以下代碼僅適用於1000個字符。如果有超過1000個字符,則光標將跳回999個字符的末尾並重新開始工作。如何在Android中設置軟鍵盤(不是EditText或TextView !!!)中的光標位置?

這是因爲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); 
+0

您是否正在使用EditText? –

+0

不,這是一個可以用於任何文本字段/區域的自定義軟鍵盤。 – Naung

+1

我發現它!只是分享其他ppl sendDownUpKeyEvents(KeyEvent.KEYCODE_DPAD_LEFT); – Naung

回答

0

這很簡單。當我在使用軟鍵盤 時,我剛剛得到解決方案。

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

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

然後通過計算只和添加了上述兩個值,您 可以得到合成的文本區域的長度的長度。

如果有任何問題只是告訴我。