Xuni for Android のドキュメント
選択範囲のカスタマイズ

Xuni Calendar コントロールのデフォルトの動作をカスタマイズして、特定の日付を選択することもできます。たとえば、異なる週の 2 つの日付をタップするだけで、平日だけを選択できるようにしたいとします。それには、getSelectionChanging イベントをサブスクライブし、ハンドラに選択条件を適用するだけです。

次の図は、異なる週の 2 つの日付をタップすると、平日だけが選択され、週末が選択解除される Xuni Calendar です。

次のコード例は、Java および C# で選択範囲をカスタマイズする方法を示します。次のコード例では、「クイックスタート」セクションで作成したサンプルを使用します。

  1. プロジェクトの MainActivity クラスに、次の import 文を追加します。
    Java
    コードのコピー
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;
    import com.grapecity.xuni.calendar.CalendarSelectionChangingEventArgs;
    import com.grapecity.xuni.calendar.XuniCalendar;
    import com.grapecity.xuni.core.IEventHandler;
    
  2. 2 つの週の 2 つの日付の間の平日だけが選択されるように、次のコードを追加します。
    Java
    コードのコピー
    calendar.getSelectionChanging().addHandler(new IEventHandler()
                    {
                            @Override
                            public void call(Object arg0, Object arg1)
                            {
                                    CalendarSelectionChangingEventArgs arg = (CalendarSelectionChangingEventArgs) arg1;
                                    List<Date> days = arg.getSelectedDates();
                                    List<Date> workdays = new ArrayList<Date>();
                                    for (Date date : days)
                                    {
                                            Calendar cal = Calendar.getInstance();
                                            cal.setTime(date);
                                            int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK) - 1;
                                            if (dayOfWeek > 0 && dayOfWeek < 6)
                                            {
                                                    workdays.add(date);
                                            }
                                    }
    
                                    arg.setSelectedDates(workdays);
                            }
                    }, this);
    

 

 


Copyright © GrapeCity inc. All rights reserved.