要解决Android MaterialDatePicker布局问题,可以按照以下步骤进行操作:
implementation 'com.google.android.material:material:1.4.0'
Button btnOpenDatePicker = findViewById(R.id.btn_open_datepicker);
btnOpenDatePicker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDatePicker();
}
});
private void showDatePicker() {
// 创建MaterialDatePicker实例
MaterialDatePicker.Builder builder = MaterialDatePicker.Builder.datePicker();
// 设置日期选择的监听器
builder.setTitleText("Select Date");
builder.setSelection(MaterialDatePicker.todayInUtcMilliseconds());
builder.setCalendarConstraints(new CalendarConstraints.Builder().build());
MaterialDatePicker picker = builder.build();
picker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener() {
@Override
public void onPositiveButtonClick(Long selection) {
// 处理选中日期的逻辑
Date selectedDate = new Date(selection);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
String formattedDate = sdf.format(selectedDate);
Toast.makeText(MainActivity.this, "Selected Date: " + formattedDate, Toast.LENGTH_SHORT).show();
}
});
// 显示日期选择器
picker.show(getSupportFragmentManager(), picker.toString());
}
在这个示例中,我们创建了一个默认的日期选择器,并设置了标题、初始选择日期和日期限制。在选择日期后,我们将选中的日期格式化为"yyyy-MM-dd"的字符串,并通过Toast显示出来。
这样就完成了Android MaterialDatePicker布局问题的解决方法。当点击按钮时,日期选择器将显示出来,你可以选择一个日期并处理选中日期的逻辑。