2016-04-16 100 views
1

我想彈出loginscreenactivity對話框片段onclick具有註冊表單的按鈕。xamarin中的空dialogfragment

我很確定這個對話框正在打開,但我無法正確誇大它。

當按鈕被點擊爲DialogFragment東西出現,但它完全是空白的,其中我期待我爲寄存器形式創建的佈局。

我已經讀了敏銳的代碼,我似乎沒有發現問題。

這是我DialogFragment

class dialog_fragment:DialogFragment 
{ 
    private Button btn; 
    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     return base.OnCreateView(inflater, container, savedInstanceState); 

     var view = inflater.Inflate(Resource.Layout.Register, container, false); 

     btn = view.FindViewById<Button>(Resource.Id.btnRegister); 
     btn.Click += delegate 
     { 
      Toast.MakeText(this.Activity, "something", ToastLength.Long).Show(); 
     }; 
     return view; 
    } 
} 

這我包括我在哪裏顯示對話框

 btnRegister.Click += delegate 
     { 
      FragmentTransaction ft = FragmentManager.BeginTransaction(); 
      dialog_fragment signup = new dialog_fragment(); 
      signup.Show(ft,"dialog signup"); 
     }; 

的解決方案可能是非常愚蠢的,在此先感謝

+0

你在哪裏顯示dialogfragment前的回報? –

回答

2

Vaibhav的,因爲你是期待,解決方案是愚蠢的,但這種情況發生。

你有對話框片段應該返回一個對話框,但遺憾的是在dialogfragment類中有兩個返回。

您的解決方案在這裏。

難怪它不會返回上base.OnCreateView(inflater, container, savedInstanceState);

任何你永遠不要滿足行var view = inflater.Inflate(Resource.Layout.Register, container, false);

刪除base.OnCreateView()

class dialog_fragment:DialogFragment 
{ 
private Button btn; 
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{ 
    //return 
    base.OnCreateView(inflater, container, savedInstanceState); 

    var view = inflater.Inflate(Resource.Layout.Register, container, false); 

    btn = view.FindViewById<Button>(Resource.Id.btnRegister); 
    btn.Click += delegate 
    { 
     Toast.MakeText(this.Activity, "something", ToastLength.Long).Show(); 
    }; 
    return view; 
} 
} 
+0

謝謝Akshay我傾向於跳過關鍵字像返回這是愚蠢的。感謝您在這裏注意到這一點。 –

相關問題