Desidero che la mia app supporti le scorciatoie da tastiera. Molti dispositivi, come ad esempio Asus Transformer
, dispongono di una tastiera esterna con la chiave Ctrl (disponibile su livello API 11). Ho fatto un po 'di codice, per verificare se Ctrl opere chiave in emulatore:Scelte rapide da tastiera personalizzate
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if(Build.VERSION.SDK_INT>10 &&
event.getAction()==KeyEvent.ACTION_DOWN &&
event.isCtrlPressed()){
String actionType="NONE";
final int keyCode = event.getKeyCode();
switch(keyCode){
case KeyEvent.KEYCODE_C:
actionType = "COPY";
break;
case KeyEvent.KEYCODE_V:
actionType = "PASTE";
break;
case KeyEvent.KEYCODE_X:
actionType = "CUT";
break;
case KeyEvent.KEYCODE_R:
actionType = "REFRESH";
break;
case KeyEvent.KEYCODE_A:
actionType = "SELECT ALL";
break;
}
Toast.makeText(ctx, actionType, Toast.LENGTH_SHORT).show();
return true;
}
return super.dispatchKeyEvent(event);
}
Purtroppo non funziona in emulatore e non posso controllare su hardware reale.
Ho due domande:
1. Funzionerebbe su dispositivo come Asus Transformer
?
2. Perché la chiave Ctrl non funziona nell'emulatore?
EDIT: Ho cercato di trovare una risposta o una soluzione al mio problema, ma né Google né SO hanno aiutato.
non c'è alcun tasto CTRL sulla maggior parte dei dispositivi (almeno non sulla maggior parte delle tastiere software) – njzk2
Ma che dire delle tastiere hardware con tasto CTRL? – RedScorpio