下面我的示例代码在OnCreateDialog事件中调用下面的方法
SetNumericMonth(true, null, dialog);
private int monthSpinnerResId;
public void SetNumericMonth(bool onCreateEventOrNot, DatePicker view, DatePickerDialog dialog)
{
if (DatePickerNumericMonthFormat == false)
{
monthSpinnerResId = Activity.Resources.GetIdentifier("android:id/month", null, null);
if (monthSpinnerResId != 0)
{
var numberPicker = (NumberPicker)dialog.DatePicker.FindViewById<NumberPicker>(monthSpinnerResId);
numberPicker.SetFormatter(new NumericMonthFormatter());
numberPicker.MinValue = 0;
numberPicker.MaxValue = 9;
}
}
}
public class NumericMonthFormatter: Java.Lang.Object, NumberPicker.IFormatter
{
public string Format1(int value)
{
return string.Format("{0:D2}", value);
}
}
1条答案
按热度按时间e4yzc0pl1#
您可以尝试建立DatePickerDialog,并设定月份编号选择器的显示值。例如:
而在主要活动中:
而且还有一些点适合你的代码:
1.方法名称应为Format而非Format 1:
在styles.xml中:
如果默认样式为日历,则
var numberPicker = (NumberPicker)dialog.DatePicker.FindViewById<NumberPicker>(monthSpinnerResId);
将为空。另外,如果只使用格式化程序,当日期改变时,显示值将被重置。所以我尝试使用自定义的日期选择器对话框。