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
}
}
me guider pour compléter mon problème ... – arams
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