我的應用會保存約會並在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