Establezca el primer día de la semana en DatePicker a lunes
Tengo un DatePicker donde deshabilité el SpinnerView y ahora sólo uso el CalendarView. Pero comienza con el domingo y me gustaría usar el lunes como el primer día de la semana. ¿Cómo puedo cambiar eso? Supuse que el primer día dependería de la configuración de los teléfonos, pero en mi teléfono suizo aún está equivocado …
No he encontrado ningún método establecido ni ningún comando XML.
- Creación de un evento de calendario en fechas específicas en Android?
- Obtenga día, mes y año por separado usando SimpleDateFormat
- Configurar la alarma de Android en un momento específico
- Getdate de datepicker android
- Calcular la diferencia entre dos veces android
<DatePicker android:id="@+id/date_picker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" />
y
DatePicker datePicker = (DatePicker) convertView.findViewById(R.id.date_picker); datePicker.setSpinnersShown(false);
————EDITAR:————
He intentado cambiar la configuración regional:
Locale.setDefault(Locale.GERMAN);
Pero eso no cambió nada éter. Así que leí el android-17.android.widget.DatePicker.java donde descubrí:
public DatePicker(Context context, AttributeSet attrs, int defStyle) { //... // initialization based on locale setCurrentLocale(Locale.getDefault()); //... } /** * Sets the current locale. * * @param locale The current locale. */ private void setCurrentLocale(Locale locale) { if (locale.equals(mCurrentLocale)) { return; } mCurrentLocale = locale; mTempDate = getCalendarForLocale(mTempDate, locale); mMinDate = getCalendarForLocale(mMinDate, locale); mMaxDate = getCalendarForLocale(mMaxDate, locale); mCurrentDate = getCalendarForLocale(mCurrentDate, locale); mNumberOfMonths = mTempDate.getActualMaximum(Calendar.MONTH) + 1; mShortMonths = new String[mNumberOfMonths]; for (int i = 0; i < mNumberOfMonths; i++) { mShortMonths[i] = DateUtils.getMonthString(Calendar.JANUARY + i, DateUtils.LENGTH_MEDIUM); } } /** * Gets a calendar for locale bootstrapped with the value of a given calendar. * * @param oldCalendar The old calendar. * @param locale The locale. */ private Calendar getCalendarForLocale(Calendar oldCalendar, Locale locale) { if (oldCalendar == null) { return Calendar.getInstance(locale); } else { final long currentTimeMillis = oldCalendar.getTimeInMillis(); Calendar newCalendar = Calendar.getInstance(locale); newCalendar.setTimeInMillis(currentTimeMillis); return newCalendar; } }
Entonces, ¿por qué Locale.setDefault (Locale.GERMAN) no funciona ?! Como se puede ver arriba obtengo el DatePicker del XML .. ¿hay algún error ?!
- Convertir de largo a formato de fecha
- Actualizar widget a la medianoche (12 AM) falla
- Android: Cómo obtener valores de la selección de fecha y hora
- Personalizar CalendarView para permitir que los días individuales se muestren de manera diferente
- DatePicker muestra el valor incorrecto del mes
- Cómo agregar Zero líder con getMonth en Java (Android)
- Establecer el timbre de unix de Android en un DatePicker
- Eliminar "0" principal en el día del mes SimpleDateFormat
Tienes que configurar manualmente el primer día de la semana, por ejemplo en onCreate () / onCreateView () de tu actividad / fragmento:
date = (DatePicker) value.findViewById(R.id.date); if (Build.VERSION.SDK_INT >= VERSION_CODES.HONEYCOMB_MR1) { date.setSpinnersShown(false); date.setCalendarViewShown(true); date.getCalendarView().setFirstDayOfWeek(Calendar.getInstance().getFirstDayOfWeek()); }
El ejemplo anterior utiliza la configuración regional predeterminada (Calendar.getInstance () realmente lo hace), sin embargo, puede especificar el día manualmente:
date.getCalendarView().setFirstDayOfWeek(Calendar.MONDAY);
La respuesta actualmente aceptada usando getCalendarView()
está obsoleta con el estilo Material.
Sin embargo, puede llamar a setFirstDayOfWeek()
en la instancia de DatePicker
. O en caso de que estés empezando un DatePickerDialog
:
DatePickerDialog datePickerDlg = new DatePickerDialog(...); datePickerDlg.getDatePicker().setFirstDayOfWeek(Calendar.MONDAY); datePickerDlg.show();
Depende de la localización de su dispositivo.
Echa un vistazo aquí: ¿Cómo hacer GWT DatePicker para usar el lunes como el primer día de la semana?
- javax.net.ssl.SSLPeerUnverifiedException: Nombre de host no verificado:
- animation.start () o animation.startNow () no inicia la animación inmediatamente