2009-08-27 6 views
0

Dans mon application, je remplace les fonctions par défaut backkey de l'androïde (par Override onkeydown) .s'agit bien.Mais quand un composant spinner sélectionne par défaut les éléments windows et le clavier virtuel (dans Android 1.5) entrer dans le écran la fonctionnalité des touches retour par défaut s'est effondrée en raison de ma dérogation.problème dans Remplacer la fonction des touches par défaut

est-il un moyen de résoudre ce problème? ou quel est le nom de la fenêtre des composants virtualkeypadwindow et spinner? Merci. . .

+0

me guider pour compléter mon problème ... – arams

+0

1.Progress Dialog 2 Clavier virtuel 3.Spinner Component's/AlertDialog Comment pouvons-nous savoir que ce type de boîtes de dialogue est ouvert dans un écran, de toute façon possible pour faire ces choses par programmation? – arams

Répondre

1

Le problème est quand il y a un Dialog à l'écran qui est en réalité une activité complètement séparée, les aides de dialogue vous le cachent juste. Il n'y a que 2 façons de résoudre ce problème (en fonction de ce que vous essayez de faire).

Vous pouvez étendre le type de boîte de dialogue que vous utilisez et remplacer la classe onKeyPress dans votre classe dérivée, puis l'utiliser à la place de la boîte de dialogue par défaut du système.

public class MyDialog extends ProgressDialog { 
    /* ... */ 

    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      // handle the keypress 
      return true; 
     } 
     return false; 
    } 
} 

Vous pouvez commencer les Dialogs avec l'option résiliable puis prendre l'annuler l'action ... quelque chose comme:

public class MyActivity implements OnCancelListener { 
    /* ... */ 

    public void startDialog() { 
     ProgressDialog pd = ProgressDialog.show(
      MyActivity.this, // Context 
      "Progress Title", // title for dialog 
      "Progress Message", // message for dialog 
      true,    // indeterminate? 
      true,    // cancellable? 
      this    // onCancelListener() 
     ); 
    } 

    @Override 
    public void onCancel(DialogInterface dialog) { 
     // the user canceled out of the load dialog (hit the 'back' button)... do something here 
    } 
} 
+0

Merci Fixedd ... mais dans ANdroid1.5 VirtualKeypad? Comment puis-je gérer celui-ci? ... – arams

Questions connexes