Работаем с CalendarView в Android
Главная » Работаем с CalendarView в Android

Сегодня мы разберем такой простой и всем известный элемент пользовательского интерфейса Android платформы, как календарь. Чтобы интегрировать стандартный календарь в свое приложение, разработчики используют элемент под названием CalendarView, который появился аж с 3-й версии операционной системы. С помощью различных атрибутов, можно покрутить и настроить вид календаря под свой вкус, хотя настроек не так уж много. Например, присутствуют такие атрибуты:

android:firstDayOfWeek - выставляем первый  день недели;

android:minDate - минимальная дата, которую будет показывать календарь, которая задается в формате mm/dd/yyyy (месяц, день, год);

android:selectedWeekBackgroundColor - фоновый цвет для выбранной недели;

android:showWeekNumber - здесь мы можем выставить, показывать номер недели или нет;

android:weekNumberColor - цвет для номер недели;

android:weekSeparatorLineColor - цвет линии, разделяющей недели и тп.

Мы не будем слишком кастомизировать свой календарь, а точнее вообще не будем, мы просто сделаем приложение, отображающее календарь и настроим ему слушателя изменений выбранной даты. Для каждого нажатия по любому дню в календаре мы, используя метод onSelectedDayChange (), будем показывать Toast сообщение с информацией о выбранной дате.

Создаем новый проект, выбираем Blank Activityи минимальную версию Android 4.0+. 

В файле activity_main.xml создаем календарь:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 android:orientation="vertical">

 <CalendarView
 android:id="@+id/calendar_view"
 android:layout_width="match_parent"
 android:layout_height="match_parent" />

</LinearLayout>

Теперь переходим к файлу MainActivity.java. Здесь мы объявляем CalendarView, ссылаемся на наш календарь в файле интерфейса, задаем ему слушателя смены даты setOnDateChangeListener, а также используя метод onSelectedDayChange, при смене даты выводим Toast сообщение с выбранной датой:

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.widget.CalendarView;
import android.widget.CalendarView.OnDateChangeListener;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {

 // Используем объект CalendarView:
 CalendarView mCalendarView;

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

 // Связываемся с нашим календариком:
 mCalendarView = (CalendarView)findViewById(R.id.calendar_view);

 //Настраиваем слушателя смены даты:
 mCalendarView.setOnDateChangeListener(new OnDateChangeListener(){

 // Описываем метод выбора даты в календаре:
 @Override
 public void onSelectedDayChange(CalendarView view, int year,int month, int dayOfMonth) {

 // При выборе любой даты отображаем Toast сообщение с данными о выбранной дате (Год, Месяц, День):
 Toast.makeText(getApplicationContext(),
 "Год: " + year + "\n" +
 "Месяц: " + month + "\n" +
 "День: " + dayOfMonth,
 Toast.LENGTH_SHORT).show();
 }});
 }
}

Вот и все, на этом знакомство с системным Android календаря заканчивается, запускаем приложение и смотрим на результат:

Вид календаря

Работает нормально, правда почему то в Google считают, что январь это 0-й месяц, поэтому май показывает как 4. Чтобы исправить, можно в настройках Toast сообщения, добавить к значению месяца единицу.

Категория: Уроки программирования | Просмотров: 1362 | Добавил: Oleg | Теги: CalendarView, Android приложение, вывод календаря в приложении | Рейтинг: 5.0/3
Всего комментариев: 0
avatar