0

Le code suivant ne fonctionne que pour 1000 caractères. S'il y a plus de 1000 caractères, le curseur reviendra à la fin de 999 caractères et recommencera à fonctionner.Comment placer la position du curseur dans le clavier logiciel (pas dans EditText ou TextView !!!) dans Android?

En effet, getTextBeforeCursor(n,flag) peut offrir que le nombre de caractères n avant la position du curseur. Dans EditText, cependant, nous pouvons obtenir tout le texte en utilisant la méthode getText() et nous pouvons obtenir la longueur aussi bien. Mais comment obtenir la longueur du texte entier dans la zone de texte de composition afin que je puisse placer la position du curseur à n'importe où je veux.

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

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

Utilisez-vous un EditText? –

+0

Non, il s'agit d'un clavier logiciel personnalisé pouvant être utilisé dans tous les champs/zones de texte. – Naung

+1

Je l'ai trouvé! Il suffit de partager d'autres ppl sendDownUpKeyEvents (KeyEvent.KEYCODE_DPAD_LEFT); – Naung

Répondre

0

Il est très simple. Je viens d'avoir une solution quand je travaille sur le clavier .

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

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

puis en ajoutant simplement le calcul et des longueurs supérieures à deux valeurs que vous pouvez obtenir longueur de la composition zone de texte.

En cas de problème, veuillez m'en informer.

Questions connexes