実際には完全に別個のアクティビティである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ダイアログ 2 .Virtual Keypad 3.Spinnerコンポーネント/ AlertDialog この種のダイアログが画面で開いていることを、どのようにして知ることができますか? – arams