Mover el foco de un cuadro de texto Editar a otro

Estoy escribiendo una aplicación de calculadora simple (usando el diseño absoluto con 3 cuadros de edición y algunos botones), que tiene dos cuadros de entrada y un cuadro de salida.

input1 = (EditText) findViewById(R.id.input1); input2 = (EditText) findViewById(R.id.input2); 

Ahora una vez que el usuario introduce algunos números en input1 y presiona '+', ahora quiero cambiar el foco de input1 a input2. ¿Cómo puedo hacer eso?

Intenté el código abajo en el keypress de '+'

 onClick(View arg0){ operator.setText("+"); //Move focus from input1 to input2 input1.clearFocus(); input2.setNextFocusDownId(input2.getId()); } 

Pero esto no está funcionando .. ¿puede por favor ayudarme en esto?

Bueno, encontré la respuesta: simplemente podemos llamar a input2.requestFocus(); Para cambiar el enfoque.

Prueba esto:

input1.setNextFocusDownId(input2.getId());

Usted está utilizando input2, y supongo que usted quiere ir de input1 a input2.

[Por cierto, desea evitar el uso de AbsoluteLayout – está obsoleto, y puede ser eliminado.]

En lugar de usar onClick, desea que la acción ocurra en el método onKeyDown de KeyListener.

Vea: setKeyListener

A continuación, puede examinar la clave de KeyEvent con

 KeyEvent.getAction() == KeyEvent.KEYCODE_PLUS 
  • Android, Admob / Adview toma | se roba el foco de edittext, ¿Cómo prevenir?
  • Android: cambia el estilo cuando se enfoca
  • Enfoque en movimiento dentro de un FrameLayout
  • Establecer el enfoque inicial en una aplicación de Android
  • Cómo mantener el cajón deslizante de la parte superior del teclado virtual
  • Cámara Android centrada sólo una vez
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.