2009-08-27 5 views
0

私のアプリケーションではアンドロイドのバックキーのデフォルト機能をオーバーライドonkeydownでオーバーライドしています.itsはうまくいきます。スピンナーコンポーネントのデフォルトの要素ウィンドウと仮想キーパッド(Android 1.5の場合)私のオーバーライドのために折りたたまれたデフォルトのバックキー機能を画面に表示します。デフォルトのバックキー機能のオーバーライドでの問題

この問題を解決する方法はありますか?またはvirtualkeypadwindowとspinnerコンポーネントウィンドウの名前は何ですか?ありがとう。 。 。

+0

私の問題を完了するために私を導く... – arams

+0

1.Progressダイアログ 2 .Virtual Keypad 3.Spinnerコンポーネント/ AlertDialog この種のダイアログが画面で開いていることを、どのようにして知ることができますか? – arams

答えて

1

実際には完全に別個のアクティビティである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 
    } 
} 
+0

おかげで固定されました...しかし、ANdroid1.5 VirtualKeypadではどうしたらいいですか?... – arams