Fancy year and month picker library for your android app
<dependency>
<groupId>com.github.twinkle942910</groupId>
<artifactId>monthyearpicker</artifactId>
<version>0.0.1</version>
<type>aar</type>
</dependency>
dependencies {
compile 'com.github.twinkle942910:monthyearpicker:0.0.1'
}
And you can pick a year | You can pick a month |
---|---|
Calendar calendar = Calendar.getInstance();
calendar.set(2010,01,01);
YearMonthPickerDialog yearMonthPickerDialog = new YearMonthPickerDialog(this, calendar, new YearMonthPickerDialog.OnDateSetListener() {
@Override
public void onYearMonthSet(int year, int month) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month);
SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM yyyy");
yearMonth.setText(dateFormat.format(calendar.getTime()));
}
});
1st argument - Context.
2nd - Calendar.
3nd - Date set listener.
yearMonthPickerDialog.show();
for exemple:
Add your custom style to android resources
<!-- Dialog default theme. -->
<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="colorControlNormal">@android:color/white</item>
<item name="colorControlActivated">@color/colorPrimary</item>
<item name="textColorAlertDialogListItem">@android:color/white</item>
<item name="colorAccent">@color/colorPrimary</item>
<item name="android:textColorPrimary">@android:color/black</item>
<item name="android:windowBackground">@drawable/dialog_background</item>
</style>
It would add colors to the controls and text. Then add a content drawable for backgound. Example:
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="16dp"
android:insetTop="16dp"
android:insetRight="16dp"
android:insetBottom="16dp">
<shape android:shape="rectangle">
<corners android:radius="2dp" />
<solid android:color="@color/colorMainBackground" />
</shape>
</inset>
use example : R.style.MyDialogTheme
And you will have your custom theme applied.
If you want to change title text color, then add a int color value as a 4th constructor parameter.
use example : R.color.MyTextTitleColor
Also, if you want to change color of title view, you have to change you main theme primary color, because it depends on it's value.
If you want the displayed values of year vary within a range, you have to set the first (min) and the last (max) year:
yearMonthPickerDialog.setMinYear(2000);
yearMonthPickerDialog.setMaxYear(2020);