2
我在做一個對話框。在初始狀態下,DatePickerFragment顯示當前日期。並將該日期設置爲我的TextView。它工作正常。有沒有什麼辦法在Android中設置DatePickerFragment中的Date(Xamarin)
下面是代碼:在活動中使用
DatePickerFragment類
public class DatePickerFragment : DialogFragment,
DatePickerDialog.IOnDateSetListener
{
public static readonly string TAG = "X:" + typeof(DatePickerFragment).Name.ToUpper();
// Initialize this value to prevent NullReferenceExceptions.
Action<DateTime> _dateSelectedHandler = delegate { };
public static DatePickerFragment NewInstance(Action<DateTime> onDateSelected)
{
DatePickerFragment frag = new DatePickerFragment();
frag._dateSelectedHandler = onDateSelected;
return frag;
}
public override Dialog OnCreateDialog(Bundle savedInstanceState)
{
DateTime currently = DateTime.Now;
DatePickerDialog dialog = new DatePickerDialog(Activity,
this,
currently.Year,
currently.Month - 1,
currently.Day);
return dialog;
}
public void OnDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
DateTime selectedDate = new DateTime(year, monthOfYear + 1, dayOfMonth);
_dateSelectedHandler(selectedDate);
}
}
這樣我的對話框內。
txt_selectDate = dialog.FindViewById<TextView>(Resource.Id.txt_selectDate);
DateTime cuurently = DateTime.Now;
txt_selectDate.Text = cuurently.ToString("dd/MM/yyyy",CultureInfo.InvariantCulture);
dialog.Show();
var select_date = dialog.FindViewById<ImageView>(Resource.Id.select_date);
select_date.Click += SelectDate_Click;
和創建點擊方法這樣
void SelectDate_Click(object sender, EventArgs e)
{
DatePickerFragment frag = DatePickerFragment.NewInstance(delegate (DateTime time)
{
var pickupDate = time.ToString("yyyy-MM-dd'T'HH:mm:ss'Z'", CultureInfo.InvariantCulture);
txt_selectDate.Text = time.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
});
frag.Show(context.FragmentManager, DatePickerFragment.TAG);
}
問題:
現在,當我再次點擊皮卡新日期DatePickerFragment
顯示當前的日期,而不是先前選定的日期。那麼有什麼辦法可以將上一個日期設置爲DatePickerFragment
?
任何幫助被讚賞。
更新:
添加PARAM後,它會給這個響應。
我已經做了這在原生的android可能會有所幫助。你可以得到現有的日期嗎? – Raghavendra
@Raghavendra是的我想設置現有的日期。 – Ironman
不,我問你是否在任何地方保存現有的日期? – Raghavendra