在CodenameOne中设置日历单元格的背景颜色

时间:2017-07-15 22:39:28

标签: calendar codenameone background-color

我想在CodenameOne日历中一次更改背景颜色几天。

这可能吗?有没有人可能有代码示例?

我想从列表或哈希表中获取日期(例如:01-08-2017,05-08-2017,20-08-2017),并在日历中为这些天设置不同的背景颜色。

这是我到目前为止所做的:

@Override
protected void updateButtonDayDate(Button dayButton, int currentMonth, int day) {

        //Customize day values

        dayButton.setText("" + day);

        Style s = dayButton.getAllStyles();

        s.setPaddingTop(3);
        s.setPaddingBottom(3);
        s.setBgColor(ColorUtil.BLUE);
        s.setBgTransparency(255);

        //s.setBorder(null);

}

2 个答案:

答案 0 :(得分:0)

我假设你正在使用com.codename1.ui.Calendar类。自定义的技巧是派生类并覆盖updateButtonDayDate方法,您可以将特定选定日期的UIID设置为您想要的任何内容。

答案 1 :(得分:0)

我找到了以下解决方案:

要在代号日历中选择或显示多个日期,一个选项是将日期添加到列表中,并根据列表项格式化日期按钮:

 cal = new Calendar() {

        @Override
        protected void updateButtonDayDate(Button dayButton, int currentYear, int currentMonth, int day  ) {

            list.add(1);
            list.add(12);
            list.add(13);
            list.add(14);
            list.add(21);


            for (int day_Number : list) {

                if (day_Number == day) {

                    dayButton.setText("" + day);
                    dayButton.setUIID("mycalender-day");

                }

        }

    };

css文件包含格式样式:

mycalender-day {

border: 1px solid whitesmoke;
color:orange;
font-family:  "native:MainRegular";
font-size: 7pt;
}