2017-02-26 4 views
0

alors j'essaye de configurer un événement clé pour un nouvel appareil qui a un bouton de balayage que je l'ai eu pour travailler auparavant avec le clavier virtuel mais je ne peux pas obtenir de travailler avec la clé matériellecomment faire keyevent qui effectuent un clic seulement s'il y a du texte

travaillant sur l'autre appareil avec le clavier virtuel sur la version 4.1, mais aussi ne fonctionnent pas sur le nouveau dispositif qui est 5,1

shelfnumberbox.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     if (actionId == EditorInfo.IME_NULL 
       && event.getAction() == KeyEvent.ACTION_DOWN) { 
      btn_aprove.performClick(); 
     } 
     return false; 

    } 
}); 
} 

ce que je suis en train de se rendre au travail

shelfnumberbox.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      if (actionId == EditorInfo.IME_NULL 
        && event.getAction() == KeyEvent.KEYCODE_BUTTON_A) { 
       btn_aprove.performClick(); 
      } 
      return false; 

     } 
    }); 

} 

le matériel entièrement fonctionnel de api KeyEvent

public boolean onKeyUp(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 
    switch (keyCode) { 
    case KeyEvent.KEYCODE_BUTTON_A: 
     if(isOnResume && scanCase != START_TEST_CASE){ 
      mDecoderMgr.dispatchScanKeyEvent(event); 
     } 
     isScanKeyDown = false; 
     return true; 
    default: 
     return super.onKeyUp(keyCode, event); 
    } 
} 

Répondre

0

consultez s'il y a du texte avant d'exécuter l'événement click:

if (v.getText().toString().length() > 0) { 
    btn_aprove.performClick(); 
} 

En tant que tel:

if (actionId == EditorInfo.IME_NULL 
      && event.getAction() == KeyEvent.ACTION_DOWN) { 
     if (v.getText().toString().length() > 0) { 
      btn_aprove.performClick(); 
     } 
    } 
+0

donc il n'y a aucun moyen d'obtenir -il travailler avec l'événement clé? –

+0

Réponse mise à jour. Rentrez simplement 'performClick' avec l'instruction if, ou ajoutez-le à l'instruction parent if. – zed

+0

qui n'a pas fonctionné –