Android: Ayuda para crear un botón que produce el mismo resultado que pulsando la tecla hacia abajo en el D-Pad? (parte 2)

StackOverflow https://stackoverflow.com/questions/3526339

  •  29-09-2019
  •  | 
  •  

Pregunta

¿Por qué no funciona esto ?? Estoy tratando de crear un OnClickListener para un botón que produce el mismo efecto que pulsar la tecla "abajo" en el D-pad. Eclipse me da un error, diciendo: "No se puede hacer una referencia estática a los sendDownUpKeyEvents no estáticos método (int) de la InputMethodService tipo" Ayuda

!
downButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {

                InputMethodService.sendDownUpKeyEvents(0x00000014);
            }
¿Fue útil?

Solución

Usted está tratando de invocar el método no estático de una manera estática. Es necesario obtener una instancia del servicio en primer lugar y luego invocar el método en la instancia. También la forma en que está haciendo la simulación de pulsación de tecla se ve incorrecta. UPD: Después de algo de investigación que he conseguido simular el evento clave, trate de:

new Thread(new Runnable() {         
    @Override
    public void run() {                 
        new Instrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN);
    }   
}).start();

Otros consejos

La misma solución, acaba de tomar un parámetro.

private void InjectKeys(final int keyEventCode) {
 new Thread(new Runnable() {
  @Override
  public void run() {
   new Instrumentation().sendKeyDownUpSync(keyEventCode);
  }
 }).start();
}

Sólo tiene que llamar y pasar el KeyEvent.KEYCODE al igual que InjectKeys(KeyEvent.KEYCODE_DPAD_DOWN);

Por favor, no me downvote o Upvote, mi respuesta es exactamente igual que la respuesta anterior, sólo lo modificó para utilizar parámetros.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top