我的应用会保存约会并在Multibutton列表中显示它们,但我也使用GUI构建器创建了带有日历的屏幕,因为我想创建一个“日历视图”,以便用户可以看看日历和:Codename One - 自定义日历日按钮
1-看到了至少一个约会高亮(定制UIID)
2-见每个日历日每次约会,约会的次数,他已经为这一天,以及当然的日期。
我读过我可以通过覆盖updateButtonDayDate()
和createDay()
来做到这一点,但我不知道如何在我的代码中做到这一点。你能告诉我一个例子吗?
我的应用会保存约会并在Multibutton列表中显示它们,但我也使用GUI构建器创建了带有日历的屏幕,因为我想创建一个“日历视图”,以便用户可以看看日历和:Codename One - 自定义日历日按钮
1-看到了至少一个约会高亮(定制UIID)
2-见每个日历日每次约会,约会的次数,他已经为这一天,以及当然的日期。
我读过我可以通过覆盖updateButtonDayDate()
和createDay()
来做到这一点,但我不知道如何在我的代码中做到这一点。你能告诉我一个例子吗?
为您的日历类中重写updateButtonDayDate()
和createDay()
,你需要创建一个扩展codenameone日历自定义日历(请确保您的扩展com.codename1.ui.calendar
,而不是java.util
)。
创建自定义日历类后,您将不得不废弃GUI生成器日历并在代码中创建一个日历。检查遵循下面的代码的使用例子:
import com.codename1.ui.Button;
import com.codename1.ui.Calendar;
import static com.codename1.ui.Component.CENTER;
public class CustomCalendar extends Calendar {
@Override
protected Button createDay() {
//Customize your button here
Button day = new Button();
day.setAlignment(CENTER);
day.setUIID("CalendarDay");
day.setEndsWith3Points(false);
day.setTickerEnabled(false);
return day;
}
@Override
protected void updateButtonDayDate(Button dayButton, int currentMonth, int day) {
//Customize day values
dayButton.setText("" + day);
}
}
,并使用它,根据您的自定义版本声明一个新的日历:
CustomCalendar myCalendar = new CustomCalendar();
myContainer.add(myCalendar);
您可以尝试在你的CustomCalendar所有样的事情,直到你发现有效的东西。按住Ctrl并点击日历以检查来源,并知道您可以覆盖哪些内容以及您无法覆盖哪些内容。
您甚至可以创建延伸Container的Calendar版本(尽管不可取)。
要根据列表中的项目选择或一个代号日历显示多个日期,一个选择是在日期列表和格式化日期按钮:
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;
}
Felipe,我有一个与CN1应用程序类似的问题,并且会对代码感兴趣,以防您可以找到解决方案。你能发布一个片段吗? – rainer