2017-05-05 30 views
0

私が欲しいのは、特定の日付を無効にする前に日付を設定することです。例えば:DatePickerDialogの日付を今日ではない特定の日付に設定する方法(XAMARIN)

今日は5月5日、2017です。 対象の特定日付:5月1日〜5月5日。

この日よりも大きい

すべては、このコード

を使用して無効になっています。しかし、私は5月1日から、それの前に無効にすることはできません。

私は今のところこのコードを持っています。

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

     //****************this is my problem*****************// 
     dialog.DatePicker.MinDate = CurrentUser.lastReplenish.Millisecond; 
     dialog.DatePicker.MaxDate = Java.Lang.JavaSystem.CurrentTimeMillis(); 
     //***************************************************// 
     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); 
     Log.Debug(TAG, selectedDate.ToLongDateString()); 
     _dateSelectedHandler(selectedDate); 
    } 
} 

I

答えて

1

私は "CurrentUser.lastReplenish" .NET DateTimeオブジェクトがあると思います! アンドロイドは常に1970年1月1日(エポック)から始まるミリ秒を必要とするので、あなたは少しを計算する必要があります。

dialog.DatePicker.MinDate = (long)CurrentUser.lastReplenish.ToUniversalTime() 
    .Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds; 
+0

私はちょうど今それをコード化し、それが完璧に動作します!どうもありがとうございます! :) – jace

関連する問題