gpt4 book ai didi

android - 有没有办法在Android(Xamarin)的DatePickerFragment中设置日期

转载 作者:太空狗 更新时间:2023-10-29 13:55:05 24 4
gpt4 key购买 nike

我正在制作一个对话框。在初始状态下,DatePickerFragment 显示当前日期。我将该日期设置为我的 TextView。它工作正常。

下面是代码:

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);

}
}

在 Activity 上,在我的对话框中使用这种方式。

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

感谢任何帮助。

更新:

enter image description here

添加参数后它会给出这个响应。

最佳答案

我没有使用 DatePickerFragment,而是使用 DatePickerDialog 并通过以下方式解决了我的问题。

这样显示DatePicker

ddtime = new DatePickerDialog(context, OnDateSet, DateTime.Today.Year, DateTime.Today.Month - 1,
DateTime.Today.Day
);

ddtime.DatePicker.DateTime = selected_Date;
ddtime.SetTitle("");
ddtime.Show();

它的方法 OnDataSet 就像这样

async void OnDateSet(object sender, DatePickerDialog.DateSetEventArgs e)
{
default_date = e.Date.Year + "/" + e.Date.Month + "/" + e.Date.Day;
txt_selectDate.Text = e.Date.Day + "/" + e.Date.Month + "/" + e.Date.Year;
selected_Date = e.Date;
}

最后我的selected_Date 像下面这样在 datePicker 中设置

ddtime.DatePicker.DateTime = selected_Date;

关于android - 有没有办法在Android(Xamarin)的DatePickerFragment中设置日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40542161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com