2011-12-30 5 views
0

私の主な活動では、私はキャンセル可能なダイアログを呼び出します。ユーザーがインターネットに接続していないときに、このダイアログを表示します。したがって、私はこのダイアログを表示してインターネットに接続するよう依頼します。Android、ダイアログの戻るボタンをクリックしたときにアプリを閉じるにはどうすればよいですか?

このダイアログにはボタンがありません。ユーザーが戻るボタンをクリックすると、アプリケーションを終了します。 onKeyDown()メソッドでは、アプリケーション(this.finish();)を閉じていますが、ユーザーが戻るボタンをクリックしたときにダイアログが画面に表示されているときに、このダイアログが消えてメインアクティビティが表示されます。

これは、メインアクティビティではダイアログではなくonKeyDown()と同じようです。ダイアログが表示され、ユーザーが戻るボタンをクリックしたときにアプリケーションを閉じる方法は?

おかげ

=====> 更新

これは私のカスタムダイアログのコードです:

private void initWarningDialog(){ 
     dialogWarning = new Dialog(DRMActivity.this, R.style.customDialogStyle); 
     dialogWarning.setTitle("Warning!"); 
     dialogWarning.setContentView(R.layout.dialogwarning); 
     dialogWarning.setCancelable(true); 
    } 

答えて

5

のみの仕上げを呼び出す()メソッド:

dialog.setPositiveButton("Ok", 
    new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      // Finish activity 
      finish(); 
     } 
    }); 

更新:

カスタムダイアログを持っているように、私はOnCancelListnerを設定するためにあなたを示唆しているであろう、何かのように:

dialogWarning.setOnCancelListener(new OnCancelListener() { 
      @Override 
      public void onCancel(DialogInterface dialog) { 
       // TODO Auto-generated method stub     

       finish(); 
      } 
}); 

更新-2:どのようにユーザーので

それは本当に迷惑です彼が後ろのキーを押すと、実際の活動が終了するかどうかを知ることができます。代わりに、ユーザーがクリックできるようにするために少なくとも "ok"ボタンを用意する必要があります。

+0

ありがとうございました。私のダイアログはカスタムダイアログで、ボタンがありません。私は上記の質問を更新しました。 – Hesam

+0

@Hesam私の親愛なる常に心に留めて、あなたが質問をするたびに、あなたのコードとlogcat出力でそれをしてください。 –

+0

彼は、ダイアログにボタンがなく、戻るボタンを押したときにダイアログが消えてしまうということについては言及しています。 – anujprashar

2

setOnCancelListenerを使用してダイアログボックスに「OnCancelListener」を設定し、OnCancelListenerのonCancelメソッドでアクティビティを終了します。

2

OnCancelListenerが有用であり得る。

alert.setOnCancelListener(new OnCancelListener() { 
      @Override 
      public void onCancel(DialogInterface dialog) { 
       // TODO Auto-generated method stub     

       finish(); 
      } 
}); 
関連する問題