我正在创建一个地图列表,每个地图都有两个键["title"]
和["time"]
,所有键的值都以setState
方法提交,且值提交为通过按钮输入字符串,并在列表内添加一个地图对象,即List _tasks = []
,所以我想做的就是访问列表中最后一个地图的[“ time”]元素,并能够更改值。
这是一个小应用程序项目的一部分,可以帮助我进一步了解Flutter。应用程序的存储库位于https://github.com/jsdaniell/remindme
的Github上列表已声明:
List _tasks = [];
将地图对象添加到列表的函数:
void _addTask() {
setState(
() {
Map<String, dynamic> newTask = Map();
newTask["title"] = _taskController.text;
newTask["time"] = _timeGlobal.toString();
_taskController.text = "";
_tasks.add(newTask);
},
);
}
重点是我想每秒减去变量_timeGlobal的值1,这是全局范围内的int值,并且是在Map ["time"]
中设置为String的值,因此我写这段代码:
String countdownTime(Map newTask) {
Timer timer = new Timer.periodic(new Duration(seconds: 1), (timer) {
// Here I want to access the value of ["time"] element, where's in the last position of list and update the value.
_saveData();
return Home();
});
// Stop the periodic timer using another timer which runs only once after specified duration
new Timer(new Duration(minutes: _timeGlobal), () {
timer.cancel();
});
}
我希望可以通过某种方式访问地图列表中的最后一张地图,以及该地图上的特定键。
答案 0 :(得分:0)
要访问列表中的最后一个元素,可以使用:
_tasks[_tasks.length - 1];
因此,如果您希望列表的最后一个元素内的Map thats中的“时间”键使用:
var lastTime = _tasks[_tasks.length - 1]["time"];