CalendarView из Android Studio

Интерфейс, диалоги, темы, стили, меню
Ответить
spbfbi
Сообщения: 10
Зарегистрирован: 22 фев 2015, 16:08

CalendarView из Android Studio

Сообщение spbfbi » 24 фев 2015, 19:18

Пол дня промучился с setMinDate() и setMaxDate(). Как мне задать ограничение календаря на 30 дней. К примеру, от сегодняшнего дня(включительно) до +30 дней?

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: CalendarView из Android Studio

Сообщение doter.ua » 24 фев 2015, 20:34

long days30 = 1000 * 60 * 60;
days30 *= 24 * 30;

curTime - days30
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

spbfbi
Сообщения: 10
Зарегистрирован: 22 фев 2015, 16:08

Re: CalendarView из Android Studio

Сообщение spbfbi » 25 фев 2015, 15:55

Во, спасибо. Уже что-то. Только приходится на день раньше ставить. Если в этот день, то ошибка
Caused by: java.lang.IllegalArgumentException: fromDate: Wed Feb 25 12:40:04 GMT 2015 does not precede toDate: Wed Feb 25 12:40:04 GMT 2015

Код: Выделить всё

public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);

        CalendarView calendarView = (CalendarView) findViewById(R.id.calendarView);
        long days30 = 1000 * 60 * 60;
        long days1 = 1000 * 60 * 60;
        days30 *= 24 * 30;
        days1 *= 24 * 1;
        calendarView.setMinDate(System.currentTimeMillis());//тут ошибка. 
        //calendarView.setMinDate(System.currentTimeMillis()-days1);//если заменить этим, то работает. Но мне не нужен прошедший день
        calendarView.setMaxDate(System.currentTimeMillis()+days30);
        calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {

            @Override
            public void onSelectedDayChange(CalendarView view, int year,
                                            int month, int dayOfMonth) {
                // TODO Auto-generated method stub
                int mYear = year;
                int mMonth = month;
                int mDay = dayOfMonth;
                String selectedDate = new StringBuilder().append(mMonth + 1)
                        .append("-").append(mDay).append("-").append(mYear)
                        .append(" ").toString();
                Toast.makeText(getApplicationContext(), selectedDate, Toast.LENGTH_LONG).show();

            }
        });
    }
}
Еще вопросы:
Как отловить выбор даты второй раз. А то если выбрал дату, произошла обработка, опять если ее хочешь выбрать, не реагирует.
И почему дни недели как хочет показывает. То есть Пн Вт нормально, а остальные по одной букве. Как исправить?
Изображение

Ответить