如何使用 table 日历创建包含日期和时间的事件列表
How to create a event list with day and hour using table calendar
所以,用户的日历到 select 一天,之后他点击 (+) 按钮创建一个事件。然后,它向用户 select 显示事件开始的时间和分钟,在他写下事件名称并且事件显示在日历上方(在事件列表中)之后。但是直到现在我只使用天,现在,我也必须设置小时。
创建事件的方法:
Future<void> _createEvent() async {
return showDialog<void>(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Write the event name', textAlign: TextAlign.center,
style: TextStyle(color: Colors.black)),
actions: [
Padding(
child: RaisedButton(
child: Text("Save", style: TextStyle(color: Colors.white, fontSize: 20),),
onPressed: (){
if(_eventController.text.isEmpty) return;
if(_myEvents[_calendarDaySelected] != null){
_myEvents[_calendarDaySelected].add(_eventController.text.toString());
_selectedEvents = _myEvents[_calendarDaySelected];
}else{
_myEvents[_calendarDaySelected] = [_eventController.text];
_selectedEvents = _myEvents[_calendarDaySelected];
}
_eventController.clear();
Navigator.pop(context);
setState(() {});
},
),
),
],
);
},
);
}
在这种情况下我使用 _myEvents[_calendarDaySelected]
所以我想写 _myEvents[calendarDaySelected][_time]
但它抛出一个错误:
error: The argument type 'TimeOfDay' can't be assigned to the parameter type 'int'
我该怎么做?如果您需要更多代码,我可以 post 这里
我用这段代码解决了这个问题:
_myEvents[_calendarDaySelected].add({"time": _time, "eventName": _eventController.text.toString()});
所以,用户的日历到 select 一天,之后他点击 (+) 按钮创建一个事件。然后,它向用户 select 显示事件开始的时间和分钟,在他写下事件名称并且事件显示在日历上方(在事件列表中)之后。但是直到现在我只使用天,现在,我也必须设置小时。
创建事件的方法:
Future<void> _createEvent() async {
return showDialog<void>(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Write the event name', textAlign: TextAlign.center,
style: TextStyle(color: Colors.black)),
actions: [
Padding(
child: RaisedButton(
child: Text("Save", style: TextStyle(color: Colors.white, fontSize: 20),),
onPressed: (){
if(_eventController.text.isEmpty) return;
if(_myEvents[_calendarDaySelected] != null){
_myEvents[_calendarDaySelected].add(_eventController.text.toString());
_selectedEvents = _myEvents[_calendarDaySelected];
}else{
_myEvents[_calendarDaySelected] = [_eventController.text];
_selectedEvents = _myEvents[_calendarDaySelected];
}
_eventController.clear();
Navigator.pop(context);
setState(() {});
},
),
),
],
);
},
);
}
在这种情况下我使用 _myEvents[_calendarDaySelected]
所以我想写 _myEvents[calendarDaySelected][_time]
但它抛出一个错误:
error: The argument type 'TimeOfDay' can't be assigned to the parameter type 'int'
我该怎么做?如果您需要更多代码,我可以 post 这里
我用这段代码解决了这个问题:
_myEvents[_calendarDaySelected].add({"time": _time, "eventName": _eventController.text.toString()});