Обновить введенную дату в CalendarView на Android

У меня есть Calendarview и Edittext. Я хочу взять дату, введенную в тексте редактирования, в формате ДД/ММ/ГГГГ и установить ее в представлении календаря. Представление должно обновить пузырек текущей даты до установленной даты.

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

Это мой текущий код:

        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR, 2019);
        calendar.set(Calendar.MONTH, Calendar.JUNE);
        calendar.set(Calendar.DAY_OF_MONTH, 20);

        long milliTime = calendar.getTimeInMillis();
        CalendarView calendarView =  findViewById(R.id.calendar);
        calendarView.setFocusedMonthDateColor(Color.BLUE); //apparently this is deprecated so won't work. Not working without it either.
        calendarView.setDate (milliTime); //this is supposed to change the date but isn't

Заранее спасибо!


person Akanshi Srivastava    schedule 17.06.2019    source источник
comment
Кроме того, в настоящее время я пытаюсь установить дату на 20 июня 2019 года. Если это сработает, я также смогу установить дату из edittext. Проблема в том, что это не отражается в календаре.   -  person Akanshi Srivastava    schedule 17.06.2019
comment
Итак, в основном вы хотите, чтобы введенный текст в edittext отображался в календаре? Вы можете просто использовать SimpleDateFormat   -  person Piyush    schedule 17.06.2019
comment
да, просто обновите пузырек до введенной даты   -  person Akanshi Srivastava    schedule 17.06.2019
comment
Вы можете просто использовать new SimpleDateFormat(dd/MM/yyyy).parse(edittext.getText().toString().trim()).getTime() . Также это ДД/ММ/ГГГГ неверно. Это дд/мм/гггг будет правильным   -  person Piyush    schedule 17.06.2019
comment
В настоящее время он находится в строковом формате.   -  person Akanshi Srivastava    schedule 17.06.2019
comment
Хорошо, я попробую.   -  person Akanshi Srivastava    schedule 17.06.2019
comment
stackoverflow.com/a/39787704/8762338 попробуйте это и проверьте, помогает ли это.   -  person Astha Garg    schedule 18.06.2019
comment
Эй, @Astha, я четко упомянул в вопросах, что пробовал этот метод.   -  person Akanshi Srivastava    schedule 19.06.2019


Ответы (1)


Я прочитал ваш вопрос и попытался решить эту проблему. передать дату (время в миллисекундах) в длинном значении типа, чтобы установить дату в представлении календаря, как это calendar_view.setDate(milliTime); попробуйте этот код для достижения своей цели.

Код

    calendar_view = findViewById(R.id.calendar_view);

  //replace date variable static value to your edit text 
    value    
  String date = "25/06/2019";
    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();
    calendar_view.setDate(milliTime);
person Android Geek    schedule 20.06.2019
comment
Эй, я не вижу никакой разницы в вашей и моей реализации. Я уже передаю дату длинным шрифтом. К тому же не работает. :/ - person Akanshi Srivastava; 20.06.2019