轉帖|使用教程|編輯:我只采一朵|2014-07-23 11:28:49.000|閱讀 1917 次
概述:本文介紹在Xamarin中使用DatePickerDialog的一些技巧。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在 Xamarin 中在使用Datepicker的時候,一般情況下只需要在對應的按鈕或其他控件的點擊事件中使用如下語句即可完成:
EditText etBirthday = FindViewById<EditText> (Resource.Id.userBirthday); etBirthday.Click += delegate(object sender, EventArgs e) { new DatePickerDialog (this, OnDatePickerSelect, DateTime.Today.Year, DateTime.Today.Month - 1, DateTime.Today.Day).Show(); }; void OnDatePickerSelect(object sender, DatePickerDialog.DateSetEventArgs e) { RunOnUiThread(() => { //日期選擇之后的操作方法 Log.Debug(e.Date.ToString("yyyy-MM-dd")); }); }
但在使用到ActivityGroup時,則可能出現如下錯誤提示:
Android.Views.WindowManagerBadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@4159dd40 is not valid; is your activity running?
這是因為在使用ActivityGroup的時候是使用到Activity嵌套,使用this獲取的不是當前Activity,所以需要將代碼修改為如下代碼:
EditText etBirthday = FindViewById<EditText> (Resource.Id.userBirthday); etBirthday.Click += delegate(object sender, EventArgs e) { new DatePickerDialog (Parent, OnDatePickerSelect, DateTime.Today.Year, DateTime.Today.Month - 1, DateTime.Today.Day).Show(); }; void OnDatePickerSelect(object sender, DatePickerDialog.DateSetEventArgs e) { RunOnUiThread(() => { //日期選擇之后的操作方法 Log.Debug(e.Date.ToString("yyyy-MM-dd")); }); }
如上代碼中紅色標注,需要將this修改為Parent,以此獲取當前Activity,如使用到多層嵌套,則使用多個Parent。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn