【问题标题】:I Need to customize month name in android.widget.datepicker我需要在 android.widget.datepicker 中自定义月份名称
【发布时间】:2018-01-12 12:36:07
【问题描述】:

这是我的代码。我想将日历转换为波斯日历,我需要更改月份名称

PersianCalendar persianCalendar = new PersianCalendar();
DatePicker calObj = new DatePicker(FrContext);

DateTime minDate = new DateTime(1300, 1, 1, 0, 0, 0);
minDate = DateTime.SpecifyKind(minDate, DateTimeKind.Utc);
DateTimeOffset min_Date = minDate;

DateTime maxDate = new DateTime(1500, 1, 1, 0, 0, 0);
maxDate = DateTime.SpecifyKind(maxDate, DateTimeKind.Utc);
DateTimeOffset max_Date = maxDate;

calObj.MinDate = min_Date.ToUnixTimeMilliseconds();
calObj.MaxDate = max_Date.ToUnixTimeMilliseconds();

calObj.DateTime = new DateTime(persianCalendar.GetYear(DateTime.Now),
persianCalendar.GetMonth(DateTime.Now),
persianCalendar.GetDayOfMonth(DateTime.Now),
0,0,0,
persianCalendar.GetEra(DateTime.Now));

AlertDialog.Builder aaa = new AlertDialog.Builder(FrContext);
aaa.SetView(calObj);
aaa.Show();

我使用下面的代码设置文化月份名称。但不工作

    public override void OnCreate(Bundle savedInstanceState)
    {
        var clture = CultureInfo.CreateSpecificCulture("fa-IR");
        clture.DateTimeFormat = new DateTimeFormatInfo()
        {
            MonthNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" },
            MonthGenitiveNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" }
        };
        CultureInfo.DefaultThreadCurrentCulture = clture;
        Thread.CurrentThread.CurrentCulture = clture;
        Thread.CurrentThread.CurrentUICulture = clture;

        base.OnCreate(savedInstanceState);
        // Create your fragment here
    }

【问题讨论】:

标签: android xamarin datepicker


【解决方案1】:

我想将日历转换为波斯日历,我需要更改月份名称

来自Xamarin.Forums的回答:Another calendar type for datepicker

正如 MohammadRezaMoradi 所说,您可以下载 PersianMaterialDateTimePicker 并用 vs. 转换为 dll

例如:将PersianMaterialDateTimePicker dll 添加到您的项目中。然后像这样使用波斯语Datepicker

 Com.Mohamadamin.Persianmaterialdatetimepicker.Date.DatePickerDialog d = new Com.Mohamadamin.Persianmaterialdatetimepicker.Date.DatePickerDialog();
 d.Show(FragmentManager, "test");

Effect.

【讨论】:

  • @JalalOnagh,你在Android.Support.V4.App.Fragment中显示日期选择器?
  • @JalalOnagh,您需要更改 DatePickerDialog 扩展 Android.Support.V4.App.DialogFragment 而不是 Android.App.DialogFragment
  • 是的。我在 Android.Support.V4.App.Fragment 中显示日期选择器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-16
  • 1970-01-01
  • 2014-02-24
  • 2017-02-19
相关资源
最近更新 更多