Mejor manera de obtener todo el texto en un EditText de un InputConnection?
He escrito un IME (InputMethodService) y necesito conseguir todo el texto del EditText que está corrigiendo. Yo sé una manera:
InputConnection inputConnection = getCurrentInputConnection(); inputConnection.append(inputConnection.getTextBeforeCursor(9999, 0)) .append(inputConnection.getTextAfterCursor(9999, 0));
Funciona, pero parece bastante estúpido y torpe. Sin embargo, no existe tal método InputConnection.getText()
.
- Cuando se utiliza AlertDialog.Builder con EditText, el Soft Keyboard no aparece
- Diferencia entre InputMethodManager SHOW_FORCED y SHOW_IMPLICIT en Android
- Android show softkeyboard con showSoftInput no funciona?
- Añadir imagen personalizada como Emoji en android
- ¿Es posible tener activo tanto el teclado físico como el teclado virtual al mismo tiempo?
¿Hay una mejor manera?
PS No puedo acceder al EditText de mi IME porque pertenece a la aplicación primaria así que por favor no me diga que use EditText.getText (), a menos que sepa una manera de obtener el EditText!
- ¿Por qué android InputMethodManager.showSoftInput () devuelve false?
- Obtención de información desde el teclado en pantalla mediante libgdx
- Android: determina el método de entrada activo del código
- ¿Cómo puedo saber si el selector de métodos de entrada está abierto o cerrado?
- Android IME: muestra un cuadro de diálogo emergente personalizado (como el teclado Swype) que puede introducir texto en el TextView
- Permiso denegado cuando intento iniciarServicio
- Ocultar el teclado después de llamar a la nueva actividad que muestra un ProgressDialog
- ¿Cómo obtener sugerencias de auto-corrección de teclado suave?
También fui tratado muy difícilmente para él pero todavía no conseguí ninguna solución apropiada.
Aquí también hay otra forma de hacerlo ..
inputConnection.performContextMenuAction(android.R.id.selectAll); CharSequence sData = inputConnection.getSelectedText(0);
Mi solución es utilizar getExtractedText (). No estoy seguro si esto tiene algunas limitaciones, pero ha funcionado para mí hasta ahora.
CharSequence currentText = inputConnection.getExtractedText(new ExtractedTextRequest(), 0).text;
- Obtener banderas activas en la ventana de Android
- ¿Puedo obligar al botón de retroceso de Android a retroceder dos pasos en la pila de actividad?