2012-02-15 4 views
8

でbackKeyを押して、警告ダイアログを閉じ、私はこのユーザがバックキーを押したときに、私はイベントをキャッチする必要がAndroidの

のようなコードを持っているダイアログ を解任しようとすると、イベントをキャプチャする方法
AlertDialog alertDialog = new AlertDialog.Builder(AppNotification.this).create(); 
    alertDialog.setTitle("Caution"); 
    alertDialog.setMessage("Alert"); 
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
     finish(); 
    } }); 
    alertDialog.show(); 
} 

ここで私はユーザーにオプションを与えましたが、彼がバックキーを押したら、他のアクションを実行する必要があります。

+0

[ここで] [1]は、受け入れられた回答と同様の質問です。 [1]:いや..私は警告ダイアログについて話していますhttp://stackoverflow.com/questions/2000102/android-override-back-button-to-act-like-home-button – rics

+0

とバックキーイベント...私はBackKeyEventについて知っています.... –

+0

バックボタンをオーバーライドするヒントでした。 Rajeelは警告に追加する方法を説明します。 – rics

答えて

23

で、その後真

AlertDialog alertDialog = new AlertDialog.Builder(AppNotification.this).create(); 
    alertDialog.setTitle("Caution"); 
    alertDialog.setMessage("Alert"); 
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
     finish(); 
    } }); 
    isAlertShowing = true; // set to true for alert 
    alertDialog.show(); 
} 

にいくつかのブール値を設定します。これは、あなた

alertDialog.setOnCancelListener(new OnCancelListener() { 
    public void onCancel(DialogInterface dialog) { 
     // Your code ...     
    } 
}); 
役立ちます表示されたときは、バックキーイベント をキャプチャすることができます
0

バックキーイベントを管理するためのボタンを作成します。 onClickイベントの中で、以下のコードを提供してみましょう。

back_key.setOnClickListener(new OnClickListener() 
{ 

     public void onClick(View v) 
     { 
      // Your Tracking Code 
     } 
}); 
1

アラートがイベント

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
 if (keyCode == KeyEvent.KEYCODE_BACK) 
       { 
           if(isAlertShowing) 
           { 
       // perform your task here 
      } 

       } 

       return super.onKeyDown(keyCode, event); 
} 
+0

これは良い方法です...私は警告ダイアログがある任意のリスナーを考えていた... :) –

1

alertDialog.setOnDismissListener(dialog -> { /* code goes here */ }); 

は、具体的却下イベントを処理するように思われるもあります。