【发布时间】:2020-12-14 17:16:32
【问题描述】:
我添加了一个日期选择器,一旦用户单击视图并出现日期选择器就会显示,并且用户可以在某些设备上选择日期日期选择器未正确显示并且用户无法选择日期。以下截图来自三星 J7 Android 版本 7.1.1。
我用于日期选择器的代码是这样的
public void initDatePicker(final TextView textView) {
Calendar calendar = Calendar.getInstance();
DatePickerDialog dialog = new DatePickerDialog(this, (view, year, month, dayOfMonth) -> {
Date date = new Date();
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
// and get that as a Date
Date dateSpecified = c.getTime();
if (dateSpecified.before(date)) {
((TextView)findViewById(R.id.tv_date)).setTextColor(getResources().getColor(R.color.red));
UIHelper.showShortToastInCenter(this, "Selected Date is in Past");
} else {
DateSelected = dateSpecified;
String predate = new SimpleDateFormat("EEE,MMM d").format(c.getTime());
String predateNew = new SimpleDateFormat("dd/MM/yyyy").format(c.getTime());
textView.setText(predate);
textView.setPaintFlags(Typeface.BOLD);
dateStr = predateNew;
}
},
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH)
);
Calendar min = Calendar.getInstance();
min.set(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH));
dialog.getDatePicker().setMinDate(min.getTimeInMillis());
Calendar max = Calendar.getInstance();
max.set(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH) + 30);
dialog.getDatePicker().setMaxDate(max.getTimeInMillis());
dialog.getDatePicker().setEnabled(true);
dialog.show();
}
这里是活动的主题
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="colorPrimary">@color/colorAccent</item>
<item name="colorPrimaryDark">@color/colorAccent</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
【问题讨论】:
-
您是否尝试为 colorPrimary、colorPrimaryDark 和 colorAccent 设置不同的颜色?
-
不,但让我试试
-
没有任何变化,仍然是 smae
标签: android datepicker android-datepicker