IInputConnection Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
L’interface InputConnection est le canal de communication d’un InputMethod
retour à l’application qui reçoit son entrée.
[Android.Runtime.Register("android/view/inputmethod/InputConnection", "", "Android.Views.InputMethods.IInputConnectionInvoker")]
public interface IInputConnection : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/view/inputmethod/InputConnection", "", "Android.Views.InputMethods.IInputConnectionInvoker")>]
type IInputConnection = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Dérivé
- Attributs
- Implémente
Remarques
L’interface InputConnection est le canal de communication d’un InputMethod
retour à l’application qui reçoit son entrée. Il est utilisé pour effectuer des opérations telles que la lecture de texte autour du curseur, la validation du texte dans la zone de texte et l’envoi d’événements de clé brute à l’application.
À partir du niveau android.os.Build.VERSION_CODES#N
de l’API, le système peut gérer la situation où l’application implémente directement cette classe, mais une ou plusieurs des méthodes suivantes ne sont pas implémentées.
<ul><li>#getSelectedText(int)
, qui a été introduit en android.os.Build.VERSION_CODES#GINGERBREAD
.</li li><#setComposingRegion(int, int)
>, qui a été introduit en .<android.os.Build.VERSION_CODES#GINGERBREAD
/li li><#commitCorrection(CorrectionInfo)
>, qui a été introduit en .<android.os.Build.VERSION_CODES#HONEYCOMB
/li li><#requestCursorUpdates(int)
>, qui a été introduit en .<android.os.Build.VERSION_CODES#LOLLIPOP
/li li><#deleteSurroundingTextInCodePoints(int, int)
>, qui a été introduit en .<android.os.Build.VERSION_CODES#N
/li li><#getHandler()
>, qui a été introduit en .<android.os.Build.VERSION_CODES#N
/li li><#closeConnection()
>, qui a été introduit en .<android.os.Build.VERSION_CODES#N
/li li><#commitContent(InputContentInfo, int, Bundle)
>, qui a été introduit en .<android.os.Build.VERSION_CODES#N_MR1
/li></ul>
<h3>Implémentation d’un IME ou d’un éditeur</h3>
L’entrée de texte est le résultat de la synergie de deux composants essentiels : un moteur de méthode d’entrée (IME) et un éditeur. L’IME peut être un clavier logiciel, une interface d’écriture manuscrite, une palette d’emojis, un moteur de reconnaissance vocale, et ainsi de suite. Il existe généralement plusieurs imEs installés sur n’importe quel appareil Android donné. Dans Android, les imEs s’étendent android.inputmethodservice.InputMethodService
. Pour plus d’informations sur la création d’un IME, consultez le guide de création d’une méthode d’entrée.
L’éditeur est le composant qui reçoit du texte et l’affiche. En règle générale, il s’agit d’une android.widget.EditText
instance, mais certaines applications peuvent choisir d’implémenter leur propre éditeur pour différentes raisons. Il s’agit d’une tâche volumineuse et complexe, et une application qui effectue cette opération doit s’assurer que le comportement est cohérent avec le comportement EditText standard dans Android. Un éditeur doit interagir avec l’IME, recevoir des commandes via cette interface InputConnection et envoyer des commandes via android.view.inputmethod.InputMethodManager
. Un éditeur doit commencer par l’implémentation android.view.View#onCreateInputConnection(EditorInfo)
pour retourner sa propre connexion d’entrée.
Si vous implémentez votre propre IME, vous devez appeler les méthodes de cette interface pour interagir avec l’application. Veillez à tester votre IME avec un large éventail d’applications, y compris les navigateurs et les éditeurs de texte enrichi, car certains peuvent avoir des particularités à traiter. N’oubliez pas que votre IME n’est peut-être pas la seule source de modifications sur le texte, et essayez d’être aussi conservateur que possible dans les données que vous envoyez et aussi libérales que possible dans les données que vous recevez.
Si vous implémentez votre propre éditeur, vous devrez probablement fournir votre propre sous-classe pour BaseInputConnection
répondre aux commandes des imEs. Veillez à tester votre éditeur avec autant d’imEs que vous pouvez, car leur comportement peut varier beaucoup. Veillez également à tester avec différentes langues, notamment les langues CJK et les langues de droite à gauche comme l’arabe, car elles peuvent avoir des exigences d’entrée différentes. En cas de doute sur le comportement que vous devez adopter pour un appel particulier, imitez l’implémentation TextView par défaut dans la dernière version d’Android, et si vous décidez de dériver de celui-ci, pensez soigneusement que les incohérences dans le comportement de l’éditeur de texte sont presque universellement ressenties comme une mauvaise chose par les utilisateurs.
<Curseurs h3>, sélections et compositions</h3>
Dans Android, le curseur et la sélection sont un et la même chose. Un « curseur » est simplement le cas spécial d’une sélection de taille zéro. Par conséquent, cette documentation les utilise de façon interchangeable. Toute méthode agissant « avant le curseur » agirait avant le début de la sélection s’il en existe une, et toute méthode agissant « après le curseur » agirait après la fin de la sélection.
Un éditeur doit être en mesure de suivre une région actuellement « composée », comme les widgets d’édition standard. La composition est marquée dans un style spécifique : voir android.text.Spanned#SPAN_COMPOSING
. Les imEs l’utilisent pour aider l’utilisateur à suivre la partie du texte sur laquelle ils se concentrent actuellement, et à interagir avec l’éditeur à l’aide InputConnection#setComposingText(CharSequence, int)
de , InputConnection#setComposingRegion(int, int)
et InputConnection#finishComposingText()
. La région de composition et la sélection sont totalement indépendantes les unes des autres, et l’IME peut les utiliser toutefois elles sont adaptées.
Documentation Java pour android.view.inputmethod.InputConnection
.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.
Propriétés
Handle |
Obtient la valeur JNI de l’objet Android sous-jacent. (Hérité de IJavaObject) |
Handler |
L’interface InputConnection est le canal de communication d’un |
JniIdentityHashCode |
Retourne la valeur de |
JniManagedPeerState |
État de l’homologue managé. (Hérité de IJavaPeerable) |
JniPeerMembers |
Prise en charge de l’accès aux membres et de l’appel. (Hérité de IJavaPeerable) |
PeerReference |
Retourne une JniObjectReference instance d’objet Java encapsulée. (Hérité de IJavaPeerable) |
Méthodes
BeginBatchEdit() |
Indiquez à l’éditeur que vous démarrez un lot d’opérations d’éditeur. |
ClearMetaKeyStates(MetaKeyStates) |
Effacez les états appuyés sur la méta touche donnée dans la connexion d’entrée donnée. |
CloseConnection() |
Appelé par le système jusqu’à une seule fois pour informer que le système est sur le point d’invalider la connexion entre la méthode d’entrée et l’application. |
CommitCompletion(CompletionInfo) |
Validez une saisie semi-automatique que l’utilisateur a sélectionnée parmi les éléments possibles précédemment signalés à |
CommitContent(InputContentInfo, InputContentFlags, Bundle) |
Appelé par la méthode d’entrée pour valider du contenu tel qu’une image PNG dans l’éditeur. |
CommitCorrection(CorrectionInfo) |
Validez une correction automatiquement effectuée sur l’entrée de l’utilisateur brut. |
CommitText(ICharSequence, Int32) |
Validez le texte dans la zone de texte et définissez la nouvelle position du curseur. |
CommitText(ICharSequence, Int32, TextAttribute) |
Variante de |
CommitText(String, Int32, TextAttribute) |
Variante de |
DeleteSurroundingText(Int32, Int32) |
Supprimez <var>beforeLength</var> characters of text before the current cursor position, and delete <var>afterLength</var> characters of text after the current cursor position, exclusion the selection. |
DeleteSurroundingTextInCodePoints(Int32, Int32) |
Variante de |
Disposed() |
Appelé lorsque l’instance a été supprimée. (Hérité de IJavaPeerable) |
DisposeUnlessReferenced() |
S’il n’existe aucune référence en suspens à cette instance, les appels |
EndBatchEdit() |
Indiquez à l’éditeur que vous avez terminé avec une modification par lot lancée précédemment avec |
Finalized() |
Appelé lorsque l’instance a été finalisée. (Hérité de IJavaPeerable) |
FinishComposingText() |
Pour que l’éditeur de texte termine ce qui compose du texte est actuellement actif. |
GetCursorCapsMode(CapitalizationMode) |
Récupérez le mode de mise en majuscule actuel en vigueur à la position actuelle du curseur dans le texte. |
GetExtractedText(ExtractedTextRequest, GetTextFlags) |
Récupérez le texte actuel dans l’éditeur de la connexion d’entrée et surveillez les modifications apportées. |
GetSelectedTextFormatted(GetTextFlags) |
Obtient le texte sélectionné, le cas échéant. |
GetSurroundingText(Int32, Int32, Int32) |
Obtient le texte environnant autour du curseur actuel, avec <les caractères var>beforeLength</var> du texte avant le curseur (début de la sélection), <var>afterLength</var> characters of text after the cursor (end of the selection) and all of the selected text. |
GetTextAfterCursorFormatted(Int32, GetTextFlags) |
Obtenez <les>caractères var n</var> du texte après la position actuelle du curseur. |
GetTextBeforeCursorFormatted(Int32, GetTextFlags) |
Obtenez les <>caractères var n</var> du texte avant la position actuelle du curseur. |
PerformContextMenuAction(Int32) |
Effectuez une action de menu contextuel sur le champ. |
PerformEditorAction(ImeAction) |
Que l’éditeur effectue une action qu’il a dit qu’il peut faire. |
PerformHandwritingGesture(HandwritingGesture, IExecutor, IIntConsumer) |
Effectuez un mouvement d’écriture manuscrite sur du texte. |
PerformPrivateCommand(String, Bundle) |
API pour envoyer des commandes privées à partir d’une méthode d’entrée à son éditeur connecté. |
PerformSpellCheck() |
L’éditeur effectue la vérification orthographique pour le contenu complet. |
PreviewHandwritingGesture(PreviewableHandwritingGesture, CancellationSignal) |
Afficher un aperçu d’un mouvement d’écriture manuscrite sur du texte. |
ReplaceText(Int32, Int32, ICharSequence, Int32, TextAttribute) |
Remplacez la plage spécifique dans l’éditeur par le texte suggéré. |
ReplaceText(Int32, Int32, String, Int32, TextAttribute) |
Remplacez la plage spécifique dans l’éditeur par le texte suggéré. |
ReportFullscreenMode(Boolean) |
Rappelé lorsque l’IME connecté bascule entre les modes plein écran et normal. |
RequestCursorUpdates(Int32) |
Appelé par la méthode d’entrée pour demander à l’éditeur de rappeler |
RequestCursorUpdates(Int32, Int32) |
Appelé par la méthode d’entrée pour demander à l’éditeur de rappeler |
RequestTextBoundsInfo(RectF, IExecutor, IConsumer) |
Appelé par méthode d’entrée pour demander la |
SendKeyEvent(KeyEvent) |
Envoyez un événement clé au processus actuellement attaché via cette connexion d’entrée. |
SetComposingRegion(Int32, Int32) |
Marquez une certaine région de texte comme texte de composition. |
SetComposingRegion(Int32, Int32, TextAttribute) |
Variante de |
SetComposingText(ICharSequence, Int32) |
Remplacez le texte actuellement composé par le texte donné et définissez la nouvelle position du curseur. |
SetComposingText(ICharSequence, Int32, TextAttribute) |
Variante de |
SetComposingText(String, Int32, TextAttribute) |
Variante de |
SetImeConsumesInput(Boolean) |
Appelée par la méthode d’entrée pour indiquer qu’elle consomme toutes les entrées pour elle-même ou ne le fait plus. |
SetJniIdentityHashCode(Int32) |
Définissez la valeur retournée par |
SetJniManagedPeerState(JniManagedPeerStates) |
L’interface InputConnection est le canal de communication d’un |
SetPeerReference(JniObjectReference) |
Définissez la valeur retournée par |
SetSelection(Int32, Int32) |
Définissez la sélection de l’éditeur de texte. |
TakeSnapshot() |
Appelé par le système lorsqu’il doit prendre un instantané de plusieurs données liées au texte de manière atomique. |
UnregisterFromRuntime() |
Annulez l’inscription de cette instance afin que le runtime ne le retourne pas à partir d’appels futurs Java.Interop.JniRuntime+JniValueManager.PeekValue . (Hérité de IJavaPeerable) |
Méthodes d’extension
JavaCast<TResult>(IJavaObject) |
Effectue une conversion de type vérifiée par le runtime Android. |
CommitText(IInputConnection, String, Int32) |
L’interface InputConnection est le canal de communication d’un |
CommitText(IInputConnection, String, Int32, TextAttribute) |
L’interface InputConnection est le canal de communication d’un |
GetSelectedText(IInputConnection, GetTextFlags) |
L’interface InputConnection est le canal de communication d’un |
GetTextAfterCursor(IInputConnection, Int32, GetTextFlags) |
L’interface InputConnection est le canal de communication d’un |
GetTextBeforeCursor(IInputConnection, Int32, GetTextFlags) |
L’interface InputConnection est le canal de communication d’un |
ReplaceText(IInputConnection, Int32, Int32, String, Int32, TextAttribute) |
L’interface InputConnection est le canal de communication d’un |
SetComposingText(IInputConnection, String, Int32) |
L’interface InputConnection est le canal de communication d’un |
SetComposingText(IInputConnection, String, Int32, TextAttribute) |
L’interface InputConnection est le canal de communication d’un |
JavaCast<TResult>(IJavaObject) |
L’interface InputConnection est le canal de communication d’un |
GetJniTypeName(IJavaPeerable) |
L’interface InputConnection est le canal de communication d’un |