Проблема в том, что на экране есть Dialog, что на самом деле является полностью отдельным Управлением, помощники диалога просто скрывают его от вас. Существует всего 2 способа решить эту проблему (в зависимости от того, что вы пытаетесь сделать).
Вы можете расширить тип диалога, который вы используете, и переопределить onKeyPress внутри производного класса, а затем использовать его вместо диалогового окна по умолчанию в системе.
public class MyDialog extends ProgressDialog {
/* ... */
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// handle the keypress
return true;
}
return false;
}
}
Вы могли бы начать вверх Диалоги с опцией досрочного затем поймать отменить действие ... что-то вроде:
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
}
}
наставит меня, чтобы закончить мою проблему ... – arams
1.Progress Dialog 2 .Virtual Keypad 3.Spinner Component's/AlertDialog Как мы можем знать, что такие диалоги открыты в screeen, любой возможный способ сделать эти вещи программно? – arams