Android: cambiar el año directamente en material-calendarioview
Estoy utilizando https://github.com/prolificinteractive/material-calendarview
Ahora mismo está cambiando el mes con el clic de la flecha derecha o izquierda
¿Cómo puedo cambiar el año directamente en lugar de cambiar el mes.
Esta es la posible vista predeterminada de Android. A continuación se muestra mi código para prolificinteractive – calendario
- ¿Cómo usar la vista de calendario personalizada en Android y cómo configurar la alerta para recordatorio?
- Consultar proveedor de contenido de calendario durante un mes, pero mostrar instancias por día
- Calendario de Android, obtener ID de evento
- Cómo obtener la hora de inicio de un evento desde el calendario android
- No se puede actualizar el evento en el calendario del teléfono desde el código
public class ActivityCalendar extends AppCompatActivity implements OnDateSelectedListener, OnMonthChangedListener { private static final DateFormat FORMATTER = SimpleDateFormat.getDateInstance(); private MaterialCalendarView widget; private String zodiacSign = ""; private HashMap<String,Integer> hashMapMonth = new HashMap<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_calendar); widget = (MaterialCalendarView)findViewById(R.id.calendarView); widget.setOnDateChangedListener(this); widget.setOnMonthChangedListener(this); } @Override public void onDateSelected(@NonNull MaterialCalendarView widget, @Nullable CalendarDay date, boolean selected) { String strDate = getSelectedDatesString(); Intent returnIntent = new Intent(); returnIntent.putExtra(TagClass.BIRTH_DATE, strDate); setResult(Activity.RESULT_OK, returnIntent); finish(); } @Override public void onMonthChanged(MaterialCalendarView widget, CalendarDay date) { //noinspection ConstantConditions } private String getSelectedDatesString() { CalendarDay date = widget.getSelectedDate(); if (date == null) { return "No Selection"; } return FORMATTER.format(date.getDate()); } }
Layout.XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ActivityCalendar"> <com.prolificinteractive.materialcalendarview.MaterialCalendarView android:id="@+id/calendarView" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
- Cómo establecer la fecha de caducidad en Android
- ¿A dónde fueron las flechas?
- Cómo ocultar los números de la semana en CalendarView (DatePicker)
- Día calendario / mes / semana vista en android
- Dividir cadenas de fecha y hora
- Abrir la aplicación para Android desde el calendario
- Inicio de la actividad del calendario
- Android: CalendarView OnDateChangeLIstener
Eso no parece ser posible con esa biblioteca como es ahora.
Con el fin de hacerlo, tendría que descargar las fuentes de github, y agregarlo a su proyecto como un módulo de biblioteca.
Entonces, espero que se necesiten cambios en al menos estos componentes:
- MaterialCalendarView.java , para cambiar el nombre o el uso del adaptador en el
ViewPager.OnPageChangeListener
- CalendarPagerAdapter.java , para proporcionar elementos del año en lugar de meses.
También, mi impresión es que haciendo estos cambios también causaría un mayor refactor en la biblioteca.
- Cambiar en el cajón de navegación de Android
- DrawableLeft se está superponiendo con una sugerencia con TextInputLayout android