1. Control de fechas
(1), selector de fecha
DatePicker es un control de uso común en la plataforma Android, que se utiliza para permitir a los usuarios seleccionar fechas. Por lo general, se muestra como un calendario y permite al usuario seleccionar el año, mes y día deslizando el dedo o tocando.
Propiedades comunes:
android:calendarViewShown
: Ya sea para mostrar la vista de calendario, el valor predeterminado es verdadero. Si se establece en falso, solo se mostrará el selector de desplazamiento para año, mes y día.- android:calendarTextColor : El color del texto de la lista del calendario.
- android:calendarViewShown : si se muestra la vista de calendario
- android: datePickerMode : apariencia del componente, valores opcionales: spinner, calendario. El efecto del primero es el siguiente y el efecto predeterminado es el segundo.
- android:calendarTextColor : El color del texto de la lista del calendario.
- android:calendarViewShown : si se muestra la vista de calendario
- android:datePickerMode : apariencia del componente, valores opcionales: spinner, calendario. El primer efecto es el siguiente, el efecto predeterminado es el segundo.
Métodos comúnmente utilizados:
init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)
: Inicialice el control DatePicker y establezca la fecha seleccionada y el detector de cambios de fecha.getYear()
: Obtenga el año seleccionado.getMonth()
: Obtenga el mes seleccionado (el rango es 0-11).getDayOfMonth()
: Obtenga la fecha seleccionada.setMinDate(long minDate)
: establezca la fecha mínima para limitar la fecha más temprana seleccionada por el usuario.setMaxDate(long maxDate)
: establece la fecha máxima para limitar la última fecha seleccionada por el usuario.
(2) Vista de calendario
CalendarView es un control de Android que se utiliza para mostrar calendarios y seleccionar fechas. Proporciona una interfaz interactiva que permite a los usuarios explorar diferentes meses y seleccionar fechas específicas.
Propiedades comunes
android:date
: Especifique la fecha seleccionada predeterminada, expresada en formato AAAA-MM-DD.android:minDate
: Especifica el valor mínimo de la fecha opcional, expresada en formato AAAA-MM-DD.android:maxDate
: Especifique el valor máximo de la fecha opcional, expresada en formato AAAA-MM-DD.android:weekNumberColor
: establece el color del texto del número de semana.android:focusedMonthDateColor
: establece el color del texto de la fecha en el mes actual.android:unfocusedMonthDateColor
: establece el color del texto de la fecha en meses no actuales.android:selectedWeekBackgroundColor
: establece el color del fondo de la semana de la fecha seleccionada.android:selectedDateVerticalBar
: establece el color de la barra vertical en el lado izquierdo de la fecha seleccionada.android:shownWeekCount
: establece el número de semanas que se muestran en el calendario.
Métodos comunes
setDate(long milliseconds)
: establece la fecha seleccionada predeterminada.getDate()
: obtiene la fecha seleccionada actualmente y devuelve un tipo largo que representa los milisegundos de la fecha.setMinDate(long minDate)
: establezca el valor mínimo de fechas seleccionables, es decir, limite la fecha más temprana que los usuarios pueden seleccionar.getMinDate()
: Obtenga el valor mínimo de la fecha opcional.setMaxDate(long maxDate)
: establece el valor máximo de fechas seleccionables, es decir, limita la última fecha que los usuarios pueden seleccionar.getMaxDate()
: Obtenga el valor máximo de fechas opcionales.setOnDateChangeListener(OnDateChangeListener listener)
: establece un detector de cambio de fecha, que se activa cuando el usuario selecciona una fecha diferente.
2. Ejemplos
Actividad principal :
public class MainActivity extends AppCompatActivity {
private CalendarView calendarView;
private DatePicker datePicker;
private TextView selectedDateTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
calendarView = findViewById(R.id.calendarView);
datePicker = findViewById(R.id.datePicker);
selectedDateTextView = findViewById(R.id.selectedDateTextView);
// 设置CalendarView的日期改变监听器
calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) {
// 处理日期改变事件
String selectedDate = year + "-" + (month + 1) + "-" + dayOfMonth;
selectedDateTextView.setText("选中日期:" + selectedDate);
}
});
// 设置DatePicker的日期改变监听器
datePicker.init(datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth(),
new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// 处理日期改变事件
String selectedDate = year + "-" + (monthOfYear + 1) + "-" + dayOfMonth;
selectedDateTextView.setText("选中日期:" + selectedDate);
}
});
// 初始时显示当前日期
updateSelectedDate();
}
private void updateSelectedDate() {
int year = datePicker.getYear();
int month = datePicker.getMonth();
int dayOfMonth = datePicker.getDayOfMonth();
String selectedDate = year + "-" + (month + 1) + "-" + dayOfMonth;
selectedDateTextView.setText("选中日期:" + selectedDate);
}
}
actividad_principal:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<CalendarView
android:id="@+id/calendarView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<DatePicker
android:id="@+id/datePicker"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/selectedDateTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:textSize="18sp" />
</LinearLayout>
resultado de la operación: