Condividi tramite


IInputConnection Interfaccia

Definizione

L'interfaccia InputConnection è il canale di comunicazione da un InputMethod back 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 InputMethod back 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 di 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), introdotto in android.os.Build.VERSION_CODES#GINGERBREAD.</li><li>#commitCorrection(CorrectionInfo), introdotto in android.os.Build.VERSION_CODES#HONEYCOMB.</li><li>#requestCursorUpdates(int), introdotto in android.os.Build.VERSION_CODES#LOLLIPOP.</li><li>#deleteSurroundingTextInCodePoints(int, int), introdotto in android.os.Build.VERSION_CODES#N.</li><li>#getHandler(), introdotto in android.os.Build.VERSION_CODES#N.</li><li>#closeConnection(), introdotto in android.os.Build.VERSION_CODES#N.</li><li>#commitContent(InputContentInfo, int, Bundle), 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 installate diverse messaggistica istantanea in qualsiasi dispositivo Android specifico. In Android, gli imes estendono android.inputmethodservice.InputMethodService. Per altre informazioni su come creare un IME, vedere la guida Creazione di un metodo di input.

L'editor è il componente che riceve 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, tra cui browser e editor di testo RTF, in quanto alcune potrebbero 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 fornire una sottoclasse di BaseInputConnection per rispondere ai comandi dagli messaggistica istantanea. Assicurarsi di testare l'editor con il numero di messaggistica istantanea che è possibile usare per variare notevolmente il comportamento. Assicurarsi anche di testare con varie lingue, tra cui lingue CJK e lingue da destra a sinistra come l'arabo, in quanto questi potrebbero avere requisiti di input diversi. In caso di dubbi sul comportamento da adottare per una determinata chiamata, simulare l'implementazione di 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 messaggistica istantanea 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#finishComposingText()InputConnection#setComposingRegion(int, int) . 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 progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Proprietà

Handle

Ottiene il valore JNI dell'oggetto Android sottostante.

(Ereditato da IJavaObject)
Handler

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

JniIdentityHashCode

Restituisce il valore di java.lang.System.identityHashCode() per l'istanza 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)

Deselezionare gli stati di 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 dai possibili segnalati 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 corrente del cursore 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 eseguire una modifica batch avviata in precedenza con #beginBatchEdit().

Finalized()

Chiamato quando l'istanza è stata finalizzata.

(Ereditato da IJavaPeerable)
FinishComposingText()

Chiedere all'editor di testo di completare il testo attualmente attivo.

GetCursorCapsMode(CapitalizationMode)

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

GetExtractedText(ExtractedTextRequest, GetTextFlags)

Recuperare il testo corrente nell'editor della connessione di input e monitorarne le modifiche.

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> caratteri di testo dopo il cursore (fine della selezione) <e tutto il 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()

Chiedere all'editor di eseguire 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)

Richiamato quando l'IME connesso passa da una modalità a schermo intero a quella normale.

RequestCursorUpdates(Int32)

Chiamato dal metodo di input per chiedere all'editor di richiamare 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 richiamare 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 InputMethod back 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 di tipo controllato dal runtime Android.

CommitText(IInputConnection, String, Int32)

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

CommitText(IInputConnection, String, Int32, TextAttribute)

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

GetSelectedText(IInputConnection, GetTextFlags)

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

GetTextAfterCursor(IInputConnection, Int32, GetTextFlags)

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

GetTextBeforeCursor(IInputConnection, Int32, GetTextFlags)

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

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

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

SetComposingText(IInputConnection, String, Int32)

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

SetComposingText(IInputConnection, String, Int32, TextAttribute)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

Si applica a