Condividi tramite


IInputConnection Interfaccia

Definizione

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input.

[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
Derivato
Attributi
Implementazioni

Commenti

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input. Viene usato per eseguire operazioni quali la lettura del testo intorno al cursore, il commit del testo nella casella di testo e l'invio di eventi chiave non elaborati all'applicazione.

A partire dal livello android.os.Build.VERSION_CODES#NAPI , il sistema può gestire la situazione in cui l'applicazione implementa direttamente questa classe, ma uno o più dei metodi seguenti non vengono implementati.

<ul><li>#getSelectedText(int), che è stato introdotto in android.os.Build.VERSION_CODES#GINGERBREAD.</li><li>#setComposingRegion(int, int), che è stato introdotto in android.os.Build.VERSION_CODES#GINGERBREAD.</li><li>#commitCorrection(CorrectionInfo), che è stato introdotto in android.os.Build.VERSION_CODES#HONEYCOMB.</li><li>#requestCursorUpdates(int), che è stato introdotto in android.os.Build.VERSION_CODES#LOLLIPOP.</li><li>#deleteSurroundingTextInCodePoints(int, int), che è stato introdotto in android.os.Build.VERSION_CODES#N.</li><li>#getHandler(), che è stato introdotto in android.os.Build.VERSION_CODES#N.</li><li>#closeConnection(), che è stato introdotto in android.os.Build.VERSION_CODES#N.</li><li>#commitContent(InputContentInfo, int, Bundle), che è stato introdotto in android.os.Build.VERSION_CODES#N_MR1.</li></ul>

<h3>Implementazione di un IME o di un editor</h3>

L'input di testo è il risultato della sinergia di due componenti essenziali: un IME (Input Method Engine) e un editor. L'IME può essere una tastiera software, un'interfaccia di grafia, una tavolozza emoji, un motore di riconoscimento vocale e così via. In genere sono installati diversi messaggistica istantanea in qualsiasi dispositivo Android specifico. In Android, gli messaggistica istantanea estendono android.inputmethodservice.InputMethodService. Per altre informazioni su come creare un IME, vedere la guida Alla creazione di un metodo di input .

L'editor è il componente che riceve il testo e lo visualizza. In genere, si tratta di un'istanza android.widget.EditText , ma alcune applicazioni possono scegliere di implementare il proprio editor per vari motivi. Si tratta di un'attività complessa e di grandi dimensioni e di un'applicazione che esegue questa operazione deve assicurarsi che il comportamento sia coerente con il comportamento EditText standard in Android. Un editor deve interagire con l'IME, ricevere comandi tramite questa interfaccia InputConnection e inviare comandi tramite android.view.inputmethod.InputMethodManager. Un editor deve iniziare implementando android.view.View#onCreateInputConnection(EditorInfo) per restituire la propria connessione di input.

Se si implementa un IME personalizzato, sarà necessario chiamare i metodi in questa interfaccia per interagire con l'applicazione. Assicurarsi di testare l'IME con un'ampia gamma di applicazioni, inclusi browser e editor di testo rtf, in quanto alcune possono avere peculiarità che è necessario gestire. Tenere presente che l'IME potrebbe non essere l'unica fonte di modifiche sul testo e cercare di essere il più conservativo possibile nei dati inviati e il più liberale possibile nei dati ricevuti.

Se si implementa un editor personalizzato, è probabile che sia necessario specificare una sottoclasse di BaseInputConnection per rispondere ai comandi da Messaggistica istantanea. Assicurarsi di testare l'editor con il maggior numero di messaggistica istantanea possibile perché il loro comportamento può variare molto. Assicurarsi anche di testare con varie lingue, tra cui le lingue CJK e le lingue da destra a sinistra, come l'arabo, in quanto possono avere requisiti di input diversi. Quando si dubita del comportamento da adottare per una determinata chiamata, simulare l'implementazione textView predefinita nella versione più recente di Android e, se si decide di derivare da esso, considerare attentamente che le incoerenze nel comportamento dell'editor di testo sono quasi universalmente percepite come una cosa negativa dagli utenti.

<h3>Cursori, selezioni e composizioni</h3>

In Android, il cursore e la selezione sono uno e la stessa cosa. Un "cursore" è solo il caso speciale di una selezione di dimensioni zero. Di conseguenza, questa documentazione li usa in modo intercambiabile. Qualsiasi metodo che agisce "prima del cursore" agisce prima dell'inizio della selezione, se presente, e qualsiasi metodo che agisce "dopo il cursore" agisce dopo la fine della selezione.

Un editor deve essere in grado di tenere traccia di un'area attualmente "composizione", ad esempio i widget dell'edizione standard. La composizione è contrassegnata in uno stile specifico: vedere android.text.Spanned#SPAN_COMPOSING. Gli oggetti istantanei usano questa opzione per consentire all'utente di tenere traccia di quale parte del testo si sta concentrando e interagire con l'editor usando InputConnection#setComposingText(CharSequence, int)e InputConnection#setComposingRegion(int, int)InputConnection#finishComposingText(). L'area di composizione e la selezione sono completamente indipendenti l'una dall'altra e l'IME può usarle, tuttavia si adattano.

Documentazione java per android.view.inputmethod.InputConnection.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal Android e usato in base ai termini descritti in 2.5 Attribution License Creative Commons 2.5 Attribution License.

Proprietà

Handle

Ottiene il valore JNI dell'oggetto Android sottostante.

(Ereditato da IJavaObject)
Handler

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input.

JniIdentityHashCode

Restituisce il valore di java.lang.System.identityHashCode() per l'istanza di di cui è stato eseguito il wrapping.

(Ereditato da IJavaPeerable)
JniManagedPeerState

Stato del peer gestito.

(Ereditato da IJavaPeerable)
JniPeerMembers

Supporto per l'accesso ai membri e la chiamata.

(Ereditato da IJavaPeerable)
PeerReference

Restituisce un JniObjectReference oggetto dell'istanza dell'oggetto Java di cui è stato eseguito il wrapping.

(Ereditato da IJavaPeerable)

Metodi

BeginBatchEdit()

Indicare all'editor di avviare un batch di operazioni dell'editor.

ClearMetaKeyStates(MetaKeyStates)

Cancellare gli stati di pressione del meta key specificati nella connessione di input specificata.

CloseConnection()

Chiamato dal sistema fino a una sola volta per notificare che il sistema sta per invalidare la connessione tra il metodo di input e l'applicazione.

CommitCompletion(CompletionInfo)

Eseguire il commit di un completamento selezionato dall'utente da quelli riportati in precedenza a InputMethodSession#displayCompletions InputMethodSession#displayCompletions(CompletionInfo[]) o InputMethodManager#displayCompletions InputMethodManager#displayCompletions(View, CompletionInfo[]).

CommitContent(InputContentInfo, InputContentFlags, Bundle)

Chiamato dal metodo di input per eseguire il commit del contenuto, ad esempio un'immagine PNG nell'editor.

CommitCorrection(CorrectionInfo)

Eseguire automaticamente il commit di una correzione sull'input dell'utente non elaborato.

CommitText(ICharSequence, Int32)

Eseguire il commit del testo nella casella di testo e impostare la nuova posizione del cursore.

CommitText(ICharSequence, Int32, TextAttribute)

Variante di InputConnection#commitText(CharSequence, int).

CommitText(String, Int32, TextAttribute)

Variante di InputConnection#commitText(CharSequence, int).

DeleteSurroundingText(Int32, Int32)

Eliminare <i caratteri var>beforeLength</var> del testo prima della posizione del cursore corrente ed eliminare <i caratteri var>afterLength</var> del testo dopo la posizione corrente del cursore, escludendo la selezione.

DeleteSurroundingTextInCodePoints(Int32, Int32)

Variante di #deleteSurroundingText(int, int).

Disposed()

Chiamato quando l'istanza è stata eliminata.

(Ereditato da IJavaPeerable)
DisposeUnlessReferenced()

Se non sono presenti riferimenti in sospeso a questa istanza, chiama Dispose(); in caso contrario, non esegue alcuna operazione.

(Ereditato da IJavaPeerable)
EndBatchEdit()

Indicare all'editor di aver completato una modifica batch avviata in precedenza con #beginBatchEdit().

Finalized()

Chiamato quando l'istanza è stata finalizzata.

(Ereditato da IJavaPeerable)
FinishComposingText()

Fare in modo che l'editor di testo termini qualsiasi testo sia attualmente attivo.

GetCursorCapsMode(CapitalizationMode)

Recuperare la modalità di maiuscola corrente in vigore nella posizione corrente del cursore nel testo.

GetExtractedText(ExtractedTextRequest, GetTextFlags)

Recuperare il testo corrente nell'editor della connessione di input e monitorare le eventuali modifiche apportate.

GetSelectedTextFormatted(GetTextFlags)

Ottiene il testo selezionato, se presente.

GetSurroundingText(Int32, Int32, Int32)

Ottiene il testo circostante intorno al cursore corrente, con <i caratteri var>beforeLength</var> del testo prima del cursore (inizio della selezione), <var>afterLength</var> characters of text after the cursor (end of the selection) e all'interno del testo selezionato.

GetTextAfterCursorFormatted(Int32, GetTextFlags)

Ottiene <i caratteri var>n</var> del testo dopo la posizione corrente del cursore.

GetTextBeforeCursorFormatted(Int32, GetTextFlags)

Ottiene <i caratteri var>n</var> del testo prima della posizione corrente del cursore.

PerformContextMenuAction(Int32)

Eseguire un'azione del menu di scelta rapida nel campo.

PerformEditorAction(ImeAction)

Fare in modo che l'editor esegua un'azione che ha detto che può eseguire.

PerformHandwritingGesture(HandwritingGesture, IExecutor, IIntConsumer)

Eseguire un movimento di grafia sul testo.

PerformPrivateCommand(String, Bundle)

API per inviare comandi privati da un metodo di input all'editor connesso.

PerformSpellCheck()

Fare in modo che l'editor esegua il controllo ortografico per il contenuto completo.

PreviewHandwritingGesture(PreviewableHandwritingGesture, CancellationSignal)

Visualizzare in anteprima un movimento di grafia sul testo.

ReplaceText(Int32, Int32, ICharSequence, Int32, TextAttribute)

Sostituire l'intervallo specifico nell'editor con il testo suggerito.

ReplaceText(Int32, Int32, String, Int32, TextAttribute)

Sostituire l'intervallo specifico nell'editor con il testo suggerito.

ReportFullscreenMode(Boolean)

Viene richiamato quando l'IME connesso passa da una modalità a schermo intero a una modalità normale.

RequestCursorUpdates(Int32)

Chiamato dal metodo di input per chiedere all'editor di chiamare di nuovo InputMethodManager#updateCursorAnchorInfo(android.view.View, CursorAnchorInfo) per notificare le posizioni di cursore/ancoraggio.

RequestCursorUpdates(Int32, Int32)

Chiamato dal metodo di input per chiedere all'editor di chiamare di nuovo InputMethodManager#updateCursorAnchorInfo(android.view.View, CursorAnchorInfo) per notificare le posizioni di cursore/ancoraggio.

RequestTextBoundsInfo(RectF, IExecutor, IConsumer)

Chiamato dal metodo di input per richiedere l'oggetto TextBoundsInfo per un intervallo di testo coperto da o nelle vicinanze dell'oggetto specificato bounds.

SendKeyEvent(KeyEvent)

Inviare un evento chiave al processo attualmente collegato tramite questa connessione di input.

SetComposingRegion(Int32, Int32)

Contrassegnare una determinata area di testo come composizione di testo.

SetComposingRegion(Int32, Int32, TextAttribute)

Variante di InputConnection#setComposingRegion(int, int).

SetComposingText(ICharSequence, Int32)

Sostituire il testo attualmente composto con il testo specificato e impostare la nuova posizione del cursore.

SetComposingText(ICharSequence, Int32, TextAttribute)

Variante di #setComposingText(CharSequence, int).

SetComposingText(String, Int32, TextAttribute)

Variante di #setComposingText(CharSequence, int).

SetImeConsumesInput(Boolean)

Chiamato dal metodo di input per indicare che utilizza tutto l'input per se stesso o non lo fa più.

SetJniIdentityHashCode(Int32)

Impostare il valore restituito da JniIdentityHashCode.

(Ereditato da IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input.

(Ereditato da IJavaPeerable)
SetPeerReference(JniObjectReference)

Impostare il valore restituito da PeerReference.

(Ereditato da IJavaPeerable)
SetSelection(Int32, Int32)

Impostare la selezione dell'editor di testo.

TakeSnapshot()

Chiamato dal sistema quando deve creare uno snapshot di più dati correlati al testo in modo atomico.

UnregisterFromRuntime()

Annullare la registrazione di questa istanza in modo che il runtime non lo restituisca dalle chiamate future Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Ereditato da IJavaPeerable)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo verificato dal runtime Android.

CommitText(IInputConnection, String, Int32)

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input.

CommitText(IInputConnection, String, Int32, TextAttribute)

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input.

GetSelectedText(IInputConnection, GetTextFlags)

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input.

GetTextAfterCursor(IInputConnection, Int32, GetTextFlags)

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input.

GetTextBeforeCursor(IInputConnection, Int32, GetTextFlags)

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input.

ReplaceText(IInputConnection, Int32, Int32, String, Int32, TextAttribute)

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input.

SetComposingText(IInputConnection, String, Int32)

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input.

SetComposingText(IInputConnection, String, Int32, TextAttribute)

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input.

JavaCast<TResult>(IJavaObject)

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input.

GetJniTypeName(IJavaPeerable)

L'interfaccia InputConnection è il canale di comunicazione da un elemento InputMethod all'applicazione che riceve l'input.

Si applica a