1

裏面,它出現了兩次,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

你試圖把一個斷點上的代碼和看看它是否真的被稱爲兩次?如果是這樣,調用堆棧是不同的? – Gusman

+0

我發現這個線程的解決方案,當添加事件處理程序到我的按鈕調用上面的代碼的方法,我不得不首先分離事件,例如btShowDialog.Click - = -eventHandler; –

回答

0

非常感謝。我正在使用一個匿名方法/委託btnOne.clicked + =(o,e)=> ...),它仍然調用片段兩次,不得不改變爲一個命名委託,然後按照你的指示,我首先退訂我重新認購了。由於

,我發現我的應用程序的根本原因,我有一個方法叫設置,其中有我的事件處理程序包括在內。我在OnCreate方法中調用它,並且我從OnResume方法調用該方法。我是一個像我一樣學習的小白人,對其他人來說可能是顯而易見的,但是在學習時並不那麼明顯。還記得的onResume是在onPause之後調用,因爲您的主要活動是因爲該片段的暫停,當您關閉片段的onResume被調用,並再次調用該事件處理程序