1

の内側に二回ポップアップし、それが2回出現し、Xamarin.Android AlertDialog私はAlertDialogに問題を抱えているフラグメント

私はそれが再び再表示されるボタンのいずれかをクリックすると、ここに私のコードです。

var builder = new Android.App.AlertDialog.Builder(Activity); 
    var view = Activity.LayoutInflater.Inflate(Resource.Layout.dialog, null); 
    Android.App.AlertDialog dialog = null; 
    builder.SetView(view); 
    dialog = builder.Create(); 
    dialog.SetButton2("CANCEL", delegate { dialog.Dismiss(); }); 
    dialog.Show(); 

私は間違っていると思いますか?

+0

コードにブレークポイントを設定しようとしましたか?それが実際に2度呼ばれているかどうか確認してください。呼び出しスタックが異なるかどうかを確認します。 – Gusman

+0

上記のコードでメソッドを呼び出すボタンにイベントハンドラを追加すると、このスレッドの解決策が見つかりました。まず、イベントを切り離す必要がありました。例:btShowDialog.Click - = -eventHandler; –

答えて

0

ありがとうございます。私は匿名メソッド/ delegate btnOne.clicked + =(o、e)=> ...)を使用していましたが、まだフラグメントを2回呼び出していましたが、名前付きデリゲートに変更してから指示に従って、私は再登録しました。ありがとう

私のアプリケーションに根本的な原因が見つかりました。私のイベントハンドラが含まれているSetUpというメソッドがありました。 OnCreateメソッドで呼び出すと、OnResumeメソッドからメソッドを呼び出します。私が行っているように学ぶので、他の人には明らかだったかもしれませんが、学習するとそれほど明白ではありません。 OnResumeはOnPauseの後に呼び出され、フラグメントが原因でメインアクティビティが一時停止されているため、フラグメントを閉じると、OnResumeが呼び出され、イベントハンドラが再度呼び出されます。

関連する問題