Compartir a través de


IInputConnection Interfaz

Definición

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada.

[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
Derivado
Atributos
Implementaciones

Comentarios

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada. Se usa para realizar tareas como leer texto alrededor del cursor, confirmar texto en el cuadro de texto y enviar eventos de clave sin procesar a la aplicación.

A partir del nivel android.os.Build.VERSION_CODES#Nde API, el sistema puede tratar con la situación en la que la aplicación implementa directamente esta clase, pero uno o varios de los métodos siguientes no se implementan.

<ul><li>#getSelectedText(int), que se introdujo en android.os.Build.VERSION_CODES#GINGERBREAD.</li li><#setComposingRegion(int, int)>, que se introdujo en .<android.os.Build.VERSION_CODES#GINGERBREAD/li li><#commitCorrection(CorrectionInfo)>, que se introdujo en .<android.os.Build.VERSION_CODES#HONEYCOMB/li li><#requestCursorUpdates(int)>, que se introdujo en .<android.os.Build.VERSION_CODES#LOLLIPOP/li li><#deleteSurroundingTextInCodePoints(int, int)>, que se introdujo en .<android.os.Build.VERSION_CODES#N/li li><#getHandler()>, que se introdujo en .<android.os.Build.VERSION_CODES#N/li li><#closeConnection()>, que se introdujo en .<android.os.Build.VERSION_CODES#N/li li><#commitContent(InputContentInfo, int, Bundle)>, que se introdujo en .<android.os.Build.VERSION_CODES#N_MR1/li></ul>

<h3>Implementar un IME o un editor</h3>

La entrada de texto es el resultado de la sinergia de dos componentes esenciales: un motor de métodos de entrada (IME) y un editor. El IME puede ser un teclado de software, una interfaz de escritura a mano, una paleta de emojis, un motor de voz a texto, etc. Normalmente hay varios IME instalados en cualquier dispositivo Android determinado. En Android, los IME extienden android.inputmethodservice.InputMethodService. Para obtener más información sobre cómo crear un IME, consulte la guía Creación de un método de entrada.

El editor es el componente que recibe texto y lo muestra. Normalmente, se trata de una android.widget.EditText instancia de , pero algunas aplicaciones pueden optar por implementar su propio editor por varias razones. Se trata de una tarea grande y complicada, y una aplicación que hace esto debe asegurarse de que el comportamiento es coherente con el comportamiento de EditText estándar en Android. Un editor debe interactuar con el IME, recibir comandos a través de esta interfaz InputConnection y enviar comandos a través de android.view.inputmethod.InputMethodManager. Un editor debe empezar implementando android.view.View#onCreateInputConnection(EditorInfo) para devolver su propia conexión de entrada.

Si va a implementar su propio IME, deberá llamar a los métodos de esta interfaz para interactuar con la aplicación. Asegúrese de probar su IME con una amplia gama de aplicaciones, incluidos exploradores y editores de texto enriquecido, ya que algunas pueden tener peculiaridades con las que debe tratar. Recuerde que su IME puede no ser la única fuente de cambios en el texto y tratar de ser lo más conservador posible en los datos que envíe y lo más liberal posible en los datos que reciba.

Si va a implementar su propio editor, probablemente tendrá que proporcionar su propia subclase de BaseInputConnection para responder a los comandos de IME. Asegúrese de probar el editor con tantas IME como pueda, ya que su comportamiento puede variar mucho. Asegúrese también de probar con varios idiomas, incluidos los idiomas CJK y los idiomas de derecha a izquierda, como árabe, ya que pueden tener requisitos de entrada diferentes. Si duda sobre el comportamiento que debe adoptar para una llamada determinada, imita la implementación predeterminada de TextView en la versión más reciente de Android y, si decide desfase de ella, considere cuidadosamente que las incoherencias en el comportamiento del editor de texto se sienten casi universalmente como algo malo por parte de los usuarios.

<h3>Cursores, selecciones y composiciones</h3>

En Android, el cursor y la selección son uno y lo mismo. Un "cursor" es solo el caso especial de una selección de tamaño cero. Por lo tanto, esta documentación las usa indistintamente. Cualquier método que actúe "antes del cursor" actuaría antes del inicio de la selección si hay uno, y cualquier método que actúe "después del cursor" actuaría después del final de la selección.

Un editor debe ser capaz de realizar un seguimiento de una región de "redacción" actualmente, como lo hacen los widgets de edición estándar. La composición está marcada en un estilo específico: vea android.text.Spanned#SPAN_COMPOSING. Los IME lo usan para ayudar al usuario a realizar un seguimiento de la parte del texto en el que se centran actualmente e interactuar con el editor mediante InputConnection#setComposingText(CharSequence, int)y InputConnection#setComposingRegion(int, int)InputConnection#finishComposingText(). La región de redacción y la selección son completamente independientes entre sí y el IME puede usarlos sin embargo.

Documentación de Java para android.view.inputmethod.InputConnection.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Propiedades

Handle

Obtiene el valor JNI del objeto Android subyacente.

(Heredado de IJavaObject)
Handler

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada.

JniIdentityHashCode

Devuelve el valor de java.lang.System.identityHashCode() para la instancia ajustada.

(Heredado de IJavaPeerable)
JniManagedPeerState

Estado del mismo nivel administrado.

(Heredado de IJavaPeerable)
JniPeerMembers

Compatibilidad con la invocación y el acceso de miembros.

(Heredado de IJavaPeerable)
PeerReference

Devuelve una JniObjectReference de la instancia de objeto Java ajustada.

(Heredado de IJavaPeerable)

Métodos

BeginBatchEdit()

Indique al editor que está iniciando un lote de operaciones del editor.

ClearMetaKeyStates(MetaKeyStates)

Desactive los estados presionados de la metaclave especificada en la conexión de entrada especificada.

CloseConnection()

Llamado por el sistema hasta una sola vez para notificar que el sistema está a punto de invalidar la conexión entre el método de entrada y la aplicación.

CommitCompletion(CompletionInfo)

Confirme una finalización que el usuario ha seleccionado de los posibles notificados anteriormente a InputMethodSession#displayCompletions InputMethodSession#displayCompletions(CompletionInfo[]) o InputMethodManager#displayCompletions InputMethodManager#displayCompletions(View, CompletionInfo[]).

CommitContent(InputContentInfo, InputContentFlags, Bundle)

Llamado por el método de entrada para confirmar contenido como una imagen PNG en el editor.

CommitCorrection(CorrectionInfo)

Confirme una corrección realizada automáticamente en la entrada del usuario sin procesar.

CommitText(ICharSequence, Int32)

Confirme el texto en el cuadro de texto y establezca la nueva posición del cursor.

CommitText(ICharSequence, Int32, TextAttribute)

Variante de InputConnection#commitText(CharSequence, int).

CommitText(String, Int32, TextAttribute)

Variante de InputConnection#commitText(CharSequence, int).

DeleteSurroundingText(Int32, Int32)

Elimine <var>beforeLength/var> caracteres de texto antes de la posición actual del cursor y elimine <los caracteres var>afterLength<</var> del texto después de la posición actual del cursor, excluyendo la selección.

DeleteSurroundingTextInCodePoints(Int32, Int32)

Variante de #deleteSurroundingText(int, int).

Disposed()

Se llama cuando se ha eliminado la instancia.

(Heredado de IJavaPeerable)
DisposeUnlessReferenced()

Si no hay referencias pendientes a esta instancia, llama a Dispose(); de lo contrario, no hace nada.

(Heredado de IJavaPeerable)
EndBatchEdit()

Indique al editor que ha terminado con una edición por lotes iniciada anteriormente con #beginBatchEdit().

Finalized()

Se llama cuando se ha finalizado la instancia.

(Heredado de IJavaPeerable)
FinishComposingText()

Haga que el editor de texto finalice lo que sea que el texto de redacción esté activo actualmente.

GetCursorCapsMode(CapitalizationMode)

Recupere el modo de capitalización actual en vigor en la posición actual del cursor en el texto.

GetExtractedText(ExtractedTextRequest, GetTextFlags)

Recupere el texto actual en el editor de la conexión de entrada y supervise los cambios realizados en él.

GetSelectedTextFormatted(GetTextFlags)

Obtiene el texto seleccionado, si existe.

GetSurroundingText(Int32, Int32, Int32)

Obtiene el texto circundante alrededor del cursor actual, con <caracteres var>beforeLength</var> del texto antes del cursor (inicio de la selección), <var>afterLength</var> caracteres de texto después del cursor (final de la selección) y todo el texto seleccionado.

GetTextAfterCursorFormatted(Int32, GetTextFlags)

Obtiene <los caracteres var>n</var> del texto después de la posición actual del cursor.

GetTextBeforeCursorFormatted(Int32, GetTextFlags)

Obtiene <los caracteres var>n</var> del texto antes de la posición actual del cursor.

PerformContextMenuAction(Int32)

Realice una acción de menú contextual en el campo.

PerformEditorAction(ImeAction)

Haga que el editor realice una acción que ha dicho que puede hacer.

PerformHandwritingGesture(HandwritingGesture, IExecutor, IIntConsumer)

Realice un gesto de escritura a mano en el texto.

PerformPrivateCommand(String, Bundle)

API para enviar comandos privados desde un método de entrada a su editor conectado.

PerformSpellCheck()

Haga que el editor realice la revisión ortográfica para el contenido completo.

PreviewHandwritingGesture(PreviewableHandwritingGesture, CancellationSignal)

Obtener una vista previa de un gesto de escritura a mano en el texto.

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

Reemplace el intervalo específico en el editor por texto sugerido.

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

Reemplace el intervalo específico en el editor por texto sugerido.

ReportFullscreenMode(Boolean)

Se llama de nuevo cuando el IME conectado cambia entre los modos de pantalla completa y normal.

RequestCursorUpdates(Int32)

Llamado por el método de entrada para pedir al editor que vuelva InputMethodManager#updateCursorAnchorInfo(android.view.View, CursorAnchorInfo) a llamar a para notificar las ubicaciones de cursor o delimitador.

RequestCursorUpdates(Int32, Int32)

Llamado por el método de entrada para pedir al editor que vuelva InputMethodManager#updateCursorAnchorInfo(android.view.View, CursorAnchorInfo) a llamar a para notificar las ubicaciones de cursor o delimitador.

RequestTextBoundsInfo(RectF, IExecutor, IConsumer)

Llamado por método de entrada para solicitar el TextBoundsInfo para un intervalo de texto que está cubierto por o en proximidad del especificado bounds.

SendKeyEvent(KeyEvent)

Envíe un evento de clave al proceso que está asociado actualmente a través de esta conexión de entrada.

SetComposingRegion(Int32, Int32)

Marque una determinada región de texto como texto de redacción.

SetComposingRegion(Int32, Int32, TextAttribute)

Variante de InputConnection#setComposingRegion(int, int).

SetComposingText(ICharSequence, Int32)

Reemplace el texto que está redactando actualmente por el texto especificado y establezca la nueva posición del cursor.

SetComposingText(ICharSequence, Int32, TextAttribute)

Variante de #setComposingText(CharSequence, int).

SetComposingText(String, Int32, TextAttribute)

Variante de #setComposingText(CharSequence, int).

SetImeConsumesInput(Boolean)

Lo llama el método de entrada para indicar que consume toda la entrada para sí misma o ya no lo hace.

SetJniIdentityHashCode(Int32)

Establezca el valor devuelto por JniIdentityHashCode.

(Heredado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada.

(Heredado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Establezca el valor devuelto por PeerReference.

(Heredado de IJavaPeerable)
SetSelection(Int32, Int32)

Establezca la selección del editor de texto.

TakeSnapshot()

Lo llama el sistema cuando necesita tomar una instantánea de varios datos relacionados con texto de forma atómica.

UnregisterFromRuntime()

Anule el registro de esta instancia para que el entorno de ejecución no lo devuelva de invocaciones futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Heredado de IJavaPeerable)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

CommitText(IInputConnection, String, Int32)

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada.

CommitText(IInputConnection, String, Int32, TextAttribute)

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada.

GetSelectedText(IInputConnection, GetTextFlags)

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada.

GetTextAfterCursor(IInputConnection, Int32, GetTextFlags)

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada.

GetTextBeforeCursor(IInputConnection, Int32, GetTextFlags)

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada.

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

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada.

SetComposingText(IInputConnection, String, Int32)

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada.

SetComposingText(IInputConnection, String, Int32, TextAttribute)

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada.

JavaCast<TResult>(IJavaObject)

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada.

GetJniTypeName(IJavaPeerable)

La interfaz InputConnection es el canal de comunicación de una InputMethod devolución a la aplicación que recibe su entrada.

Se aplica a