2011-06-23 1 views
1

J'ouvre le clavier virtuel et j'obtiens la touche pressée dans mon application 2d. mais le clavier virtuel ne donne aucune réponse quand j'appuie sur la touche DEL sur le clavier virtuel.sonyericsson xperia x10 del clé

Comment puis-je savoir quand l'utilisateur appuie sur la touche DEL ou est-ce que je peux ajouter un keylistener global au système?

Répondre

0

La meilleure façon est de créer votre propre édition basé sur un widget EditText:

public class CustomEditText extends EditText { 
    public CustomEditText(Context context) { 
     super(context); 
    } 

    public CustomEditText(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public CustomEditText(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 
} 

Ensuite, remplacer la méthode OnKeyPreIme

@Override 
public boolean onKeyPreIme(int keyCode, KeyEvent event) { 
    if(keyCode == KeyEvent.KEYCODE_DEL) { 
     // Do something 
    } 
    return super.onKeyPreIme(keyCode, event); 
} 

Bien sûr, au-dessus méthode fonctionne si vous avez un EditText pour lequel clavier à l'écran est ouvert (mais vous pouvez en créer un avec la taille de 0 dip, de toute façon)

+0

Je n'utilise pas EditText. Je montre juste une vue de base étendue. et, j'essaye d'implémenter votre code à mon avis, mais cela ne marche pas. En fait, la touche DEL fonctionne d'autres appareils Android, mais seulement xperia. xperia a 12 pavés numériques, pas tout le clavier qwerty. problème peut être lié à ce – Adem

+0

Et comment recevez-vous la touche enfoncée? avec onKeyDown? –

+0

oui, onkeydown et onkeyup fonctionne bien pour les autres caractères. mais seulement la touche DEL. De plus, la touche DEL fonctionne bien avec d'autres appareils. c'est étrange. en fait, il peut s'agir d'un système de pavé numérique. – Adem