저는 Xamarin.android를 처음 사용합니다. 여기 내 프로젝트에서 xamarin.android에서 DatePickerDialog를 사용하고 있습니다. 올해의 선택을 제한하고 싶습니다. 나는 나이 제한을 dob에 대해 21 년으로 설정해야한다는 것을 의미합니다. 그래서 사용자는 현재 날짜로부터 21 년을 초과하는 나이를 선택할 수 없습니다. 현재 연도가 2017 일 경우 사용자는 1996 년 이후로 선택할 수 없어야합니다. 1996 년 이후의 연도를 선택하면 1996에 다시 와야합니다.xamarin.android의 DatePickerDialog에서 1 년 선택 제한 설정
edittext를 클릭 할 때 DatePickerFragment 클래스를 호출합니다. 여기 코드를 사용했습니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Util;
using Android.Views;
using Android.Widget;
namespace MobileApplication.Droid
{
public class DatePickerFragment : DialogFragment,
DatePickerDialog.IOnDateSetListener
{
// TAG can be any string of your choice.
public static readonly string TAG = "X:" + typeof(DatePickerFragment).Name.ToUpper();
// Initialize this value to prevent NullReferenceExceptions.
Action<string> _dateSelectedHandler = delegate { };
public static DatePickerFragment NewInstance(Action<string> 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 - 21,
currently.Month,
currently.Day);
dialog.DatePicker.MaxDateTime.DayOfYear.Equals(currently.Year - 21);
return dialog;
}
public void OnDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
// Note: monthOfYear is a value between 0 and 11, not 1 and 12!
//DateTime selectedDate = new DateTime(year, monthOfYear + 1, dayOfMonth);
string selectedDate = (monthOfYear + 1).ToString().PadLeft(2, '0') + "/" + (dayOfMonth).ToString().PadLeft(2, '0') + "/" + year.ToString();
//Log.Debug(TAG, selectedDate.ToLongDateString());
Log.Debug(TAG, selectedDate);
_dateSelectedHandler(selectedDate);
}
}
}
edittext 클릭시 연도는 (현재 연도 - 21)로 설정됩니다. 하지만 사용자는 날짜 선택이 잘 작동되는 약간의 변경을 수행하여,이 Link에 따르면 ..이 일을 달성하기 위해 그 year..how 이상 선택 그래서
는 21 년 동안 사람들을 명확히하시기 바랍니다 (21)의 연령 제한을 설정해야합니다 이상 등록 할 수 있습니다 또는 유일한 사람들과 .. 난 내 앞의 코드에 대한 변경 사항입니다 21이 등록 할 수 있습니다. –
예. 할 수는 있지만 .. 선택 자체를 제한하고 싶습니다. –
datepicker는 21 년 이상 선택해서는 안됩니다. –