Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Custom 'Teclado' construido en una aplicación en Android

He estado buscando crear un teclado personalizado para mi aplicación. Al principio, comencé a mirar el SoftKeyboard para los ejemplos de SDK, pero leer el Grupo de Desarrolladores de Android me llevó a este post:

Esto no es realmente cómo el marco de método de entrada se supone que funcione. Un IME debe ser una facilidad de entrada genérica, no para una aplicación particular. Si necesita alguna entrada específica de la aplicación, debe crearla en su interfaz de usuario en lugar de empujarla a un IME genérico.

¿Cómo construyo una entrada específica de la aplicación dentro de la interfaz de usuario? Quiero decir, ¿hay alguna manera de extender la aplicación Keyboard o algo así y usarla sólo en mi aplicación?

Características necesarias para el teclado:

  • Tecla Mayús para mostrar otras teclas
  • Claves especiales como la raíz cuadrada o PI
  • Etc.

PS: una solución fea podría ser hacer una tabla de ImageButton por ejemplo, pero quería hacer algo limpio.

  • Android EditText teclado numérico predeterminado y permitir texto
  • ¿Dónde puedo encontrar la clave API y el secreto API para Facebook?
  • ¿Cómo puedo implementar soft keyboard especial
  • Teclado suave de Android oscurece los campos de entrada en la aplicación web HTML5 móvil
  • Android Ocultar barra de navegación / permanecer en modo inmersivo con la apariencia de teclado suave
  • PopupWindow sobre el teclado virtual
  • Añadir mi propio teclado en lugar del teclado predeterminado en el dispositivo Android como entrada
  • El teclado virtual de Android activa el bloqueo de mayúsculas
  • 3 Solutions collect form web for “Custom 'Teclado' construido en una aplicación en Android”

    No estoy realmente seguro si hay una solución directa a esto (en esa medida que incluso es posible entender la verdadera razón detrás de la pregunta original).

    Como se cita en la pregunta original:

    Si necesita alguna entrada específica de la aplicación, debe crearla en su interfaz de usuario en lugar de empujarla a un IME genérico.

    Lo que se entiende por eso, no es que usted dentro de su aplicación debe tratar de construir en tales características de entrada mediante la ampliación o modificación del teclado suave en el teléfono. Hay muchos teclados diferentes (y, básicamente, el teclado suave es sólo otra aplicación), ya que la mayoría de los fabricantes de teléfonos crean su propia versión, y la gente descarga teclados de terceros (como Swype o SwiftKey, etc.), y no puedo Hay una manera para que usted "corte" en los que añadir algunos botones o lo que sea que desea (que también podría ser un agujero de seguridad importante, otra razón por la que probablemente no es posible).

    Lo que en su lugar la cita anterior sugiere, es que usted tiene que crear alguna otra forma de entrada además del teclado. Uno de estos ejemplos, y uno muy bueno si quiero añadir, es cómo se ve la calculadora científica RealCalc :

    RealCalc Calculadora científica

    Ahora esto no es de código abierto, así que sólo puedo adivinar cómo se ve el código (pero no debería ser demasiado difícil suponer): en su forma más simple, esto es sólo una cuadrícula con un montón de botones . Cada botón maneja el evento onClick, lo que significaría realizar algún tipo de acción (cambiar la etiqueta de algunos otros botones, mostrar un menú, mostrar algún texto en la etiqueta superior o lo que sea), y eso es probablemente bastante lo que es. Y por supuesto, el teclado del teléfono nunca se muestra (ya que no necesita un teclado con todos esos botones (y tampoco hay campos de entrada para escribir nada).

    Todo se reduce a la cita ya mencionada: Si necesita alguna entrada específica de la aplicación, debe construir en su interfaz de usuario . O en otras palabras: crear botones (y no mostrar el teclado virtual si no lo necesita) y hacer que las cosas sucedan cuando se hace clic en ellos.


    Y sólo por haberlo mencionado: si quieres crear tu propio IME (que creo firmemente que no es el caso aquí), deberías echar un vistazo a los siguientes recursos:

    • Métodos de entrada en pantalla
    • Creación de un método de entrada
    • Muestra del teclado

    En mi humilde opinión usted debe echar un vistazo al principio de la referencia sobre teclado y teclado ver http://developer.android.com/reference/android/inputmethodservice/Keyboard.html y http://developer.android.com/reference /android/inputmethodservice/KeyboardView.html .

    Allí puede ver un ejemplo de definición de teclado utilizando un archivo XML. Creo que esto es lo que buscas.

    Como se mencionó por @ Sebap123 Teclado y clase KeyboardView son el que necesita para utilizar,

    Además, para la implementación, aquí está una guía detallada rápida .

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.