2010-11-02 6 views
1

Je viens overide mon bouton de retour dans mon code comme celui-ciRedéfinition Retour Bouton Action en activité

 @Override 
     public boolean onKeyDown(int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_BACK) { 

       return true; 
      } 
      return super.onKeyDown(keyCode, event); 
     } 

     @Override 
     public boolean onKeyUp(int keyCode, KeyEvent event) 
      { 

       { 
         startActivity(new Intent(context, MainDialog.class)); 
         finish(); 

       return true; 
      } 
      return super.onKeyUp(keyCode, event); 
     } 

Maintenant, je suis confronté à un problème bizarre, j'ai un texte d'édition sur l'activité en cours. Au moment de l'édition lorsque j'essaie de fermer le clavier virtuel en appuyant sur le bouton arrière. Mon application se termine ... Mais je veux juste fermer le clavier pas l'Avtivité .. Une suggestion pour résoudre mon problème ..?

Merci à l'avance, Tanmay


I have tried both 

     @Override 
    public boolean onKeyUp(int keyCode, KeyEvent event) 
     { 
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 

       startActivity(new Intent(context, MainDialog.class)); 
       finish(); 
       return true; 
     } 
     return super.onKeyUp(keyCode, event); 
    } 

et

 @Override 
    public boolean onKeyUp(int keyCode, KeyEvent event) 
     { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 

       startActivity(new Intent(context, MainDialog.class)); 
       finish(); 
       return true; 
     } 
     return super.onKeyUp(keyCode, event); 
    } 

Mais aucun résultat. Toute suggestion !!

+0

DUPLICAT possible: http://stackoverflow.com/questions/2592037/is-there-a-default-back-keyon-device-listener-in-android – Praveen

Répondre

4

Il semble que vous ayez manqué l'instruction if qui récupère le code de la touche retour. Essayez ceci:

@Override 
    public boolean onKeyUp(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      startActivity(new Intent(context, MainDialog.class)); 
      finish(); 
      return true; 
     } 
     return super.onKeyUp(keyCode, event); 
    } 
0

Une solution plus probablement, peut-on faire comme ça ...

J'ai un ImageButton par id buttonBack xml Je reçois la main de ce sur btnBack et en ajoutant une OnClickListener

Dans la fonction onClick public void j'appelle une intention de la classe qui a une autre mise en page probablement la classe précédente ... espérons que cela fonctionne pour tous ... merci.

ImageButton btnBack = (ImageButton)this.findViewById(R.id.buttonBack); 
    btnBack.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
     Intent myIntent = new Intent(view.getContext(), Your.class); 
        startActivityForResult(myIntent, 0); 

     } 
    }); 
Questions connexes