J'ai des difficultés à déclencher l'événement onKey de mon View principal. Je ne suis pas sûr de ce que je fais mal, j'ai correctement implémenté l'événement onClick mais je n'arrive pas à comprendre l'événement onKey.Problème lors du déclenchement d'un événement onKey avec Android
Voici le code correspondant:
public class MyActivity extends Activity {
private RelativeLayout main;
private ApplicationToolbar toolbar;
public void onCreate(Bundle savedInstanceState) {
...
this.main = (RelativeLayout) this.findViewById(R.id.main);
this.toolbar = new ApplicationToolbar(this);
// toolbar is added to main later on in the code...
this.main.setOnClickListener(mClickListener);
this.main.setOnKeyListener(mKeyListener);
}
private OnClickListener mClickListener = new OnClickListener() {
public void onClick(View v) {
toolbar.setVisibility(View.VISIBLE); // Works correctly.
}
};
private OnKeyListener mKeyListener = new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
toolbar.setBackgroundColor(0xFF0000FF); // Does not work.
return true;
}
};
}
En fait, peu importe ce code que je mets dans les mKeyListener il n'exécute pas, ce qui me porte à croire que l'événement lui-même est jamais déclenchée, même quand je pressais un tas de touches sur mon clavier physique (Motorola Droid, Android 2.1).
Merci, outrepassant l'événement onKeyDown fonctionne, et il est une solution viable pour ma situation. Une idée de pourquoi ma méthode ci-dessus ne fonctionne pas correctement? – celestialorb
@celestialorb: Peut-être que vous n'avez aucun enfant 'onFocus' de RelativeLayout lorsque vous appuyez sur une touche. Essayez d'ajouter un 'EditText' à l'intérieur. – Macarse