2016-07-15 2 views
0

setCanceledOnTouchOutside(true)の取り消し可能ダイアログ・フラグメントを使用します。今、私は2つのケースを区別したい:ユーザーがダイアログをどの程度正確にキャンセルしたかはどのようにわかりますか?

  • ユーザーが戻るボタンを使用してダイアログをキャンセルします。
  • ユーザーはそれの外タッチしてダイアログをキャンセルします。

両方のアクションが、リスナーのonCancel()onDismiss()の両方を呼び出します。また、これらの2人のリスナーがそこにはどんな「イベント状態」は、ユーザがcancelledダイアログ持っているかを正確に確認しないようにするために、パラメータとしてDialogInterfaceを受け入れます。

どうすればいいですか?ユーザがデバイスの戻るボタンを押した場合、メソッドをオーバーライドする、知っている

+1

onBackPressedをオーバーライドして、ユーザーが戻るボタンを押したかどうかを知ることができます。 – Fustigador

+1

最初の場合:ダイアログをOnBackPressed()側で閉じることができます。 \t @Override onBackPressed \t公共ボイド(){dialog.dismiss()。 \t} – Sushrita

+0

どのダイアログを使用していますか? –

答えて

1

はonBackPressed:例えば

@Override 
public void onBackPressed() 
{ 
//here you could set a boolean to know if the user pressed the back button, and react accordingly when the dialog is closed. 
backPressed=true; 
} 

を。

関連する問題