我尝试在Codename One中创建自定义日历,以便能够根据某些数据源选择,向不同日期添加文本等。 默认日历没有任何数据源 - 可能更有可能是日期选择器而不是具有不同功能的日历。
我的第一种方法是扩展默认日历并覆盖 updateButtonDayDate 方法。它提供了一些灵活性 - 我能够改变文本或其他东西。不幸的是,在Calendar的构造函数中调用了updateButtonDayDate,因此在基类Calendar之前无法初始化自定义日历会调用其构造函数并在其中运行updateButtonDayDate(字节码操作不是答案)。
我的第二个想法是在初始化期间将不同的 UIID 设置为days元素。不幸的是,我没有看到任何允许我通过UIID查找元素的方法。
在Codename One Calendar中是否有可能选择日期,根据数据源设置日期描述?或者我是否必须创建自己的组件,其中包含所有这些功能?
感谢您的帮助:)
答案 0 :(得分:0)
是的,原来的Calendar课程被设计为日期选择器。
您可以使用setName()
或仅保留对子类中每天组件的引用,以便您可以直接修改该引用,例如Map<Date, Button>
。
请注意,您可以将代码作为起点并根据需要进行更改,我不确定Calendar
是否是良好工程的一个很好的例子,因为它是一个非常古老的组件Codename One并没有被广泛使用,所以它没有享受其余代码所带来的现代化。大多数开发人员只需要一个选择器,为此Picker
组件提供了更好的选择。