Как установить фокус на определенную дату в CalendarView, зная дату дд/мм/гггг

Я пытаюсь выяснить, как установить фокус на определенную дату в CalendarView во время создания действия. Дата известна и хранится в отдельной строковой переменной, скажем, theDate и имеет формат dd/mm/yyyy Зная это, могу ли я сделать фокус календаря на конкретную дату?

Предположим, что в этом случае представление календаря mCalendarView.


person Ilja    schedule 22.03.2014    source источник


Ответы (2)


Попробуйте этот метод в CalendarView: http://developer.android.com/reference/android/widget/CalendarView.html#setDate(long)

Что касается преобразования формата дд/мм/гггг в формат миллисекунд, я рекомендую хранить дату в формате миллисекунд и преобразовывать в формат дд/мм/гггг только при отображении даты. Однако, если вам нужно использовать формат дд/мм/гггг, я бы попробовал следующее:

    String date = "22/3/2014";
    String parts[] = date.split("/");

    int day = Integer.parseInt(parts[0]);
    int month = Integer.parseInt(parts[1]);
    int year = Integer.parseInt(parts[2]);

    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.YEAR, year);
    calendar.set(Calendar.MONTH, month);
    calendar.set(Calendar.DAY_OF_MONTH, day);

    long milliTime = calendar.getTimeInMillis();

А теперь установите выбранную дату в представлении календаря, выполнив

    mCalendarView.setDate (milliTime, true, true); 
person JustSoAmazing    schedule 22.03.2014

это работает на мне :)

    String selectedDate = "30/09/2016";
    mCalendarView.setDate(new SimpleDateFormat("dd/MM/yyyy").parse(selectedDate).getTime(), true, true);
person Muhammad Irvan Tommi    schedule 30.09.2016