Masquer le Clavier virtuel sur le Fait Keypress dans Android?

Je suis aux prises avec le bouton terminé sur le clavier. Je ne peux pas obtenir le clavier Fait touche appuyez sur pour masquer le clavier. À partir d'un autre bouton, il fonctionne parfaitement avec

imm.hideSoftInputFromWindow(editText.getApplicationWindowToken(), 0);

mais la onKeyListener ne fonctionne pas comme je le veux. Quand j'ai frappé la editText, le clavier se montre et de son contenu est effacé de caractères.

Merci pour l'écoute!

L'main.xml:

<EditText 
    android:id="@+id/answer" 
    android:layout_gravity="center_horizontal" android:textSize="36px"
    android:inputType="phone"
    android:minWidth="60dp" android:maxWidth="60dp"
/>

Le fichier Java:

private EditText editText;
//...
editText = (EditText)findViewById(R.id.answer);
editText.setOnClickListener(onKeyboard);
editText.setOnKeyListener(onSoftKeyboardDonePress);
//...

//method not working:
private View.OnKeyListener onSoftKeyboardDonePress=new View.OnKeyListener() 
{
    public boolean onKey(View v, int keyCode, KeyEvent event) 
    {
        if (event.getKeyCode() == KeyEvent.FLAG_EDITOR_ACTION)
        {
            //code to hide the soft keyboard
            imm = (InputMethodManager) getSystemService(
                Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(editText.getApplicationWindowToken(), 0);
        }
        return false;
    }
};

private View.OnClickListener onKeyboard=new View.OnClickListener() 
{
    public void onClick(View v) 
    {
        editText.setText("");
    }
};

La méthode de travail à l'aide d'un bouton (dans le même fichier java):

private View.OnClickListener onDone=new View.OnClickListener() 
{
    public void onClick(View v) 
    {
        //....
        //code to hide the soft keyboard
        imm = (InputMethodManager) getSystemService(
            Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(editText.getApplicationWindowToken(), 0);
    }
};

Edit: Quand je la touche pas "9" pour le clavier se cache. C'est bizarre.

OriginalL'auteur 4rchit3ct | 2010-08-05