android - 更新列表中的对象

标签 android list flutter object dart

我正在调用类中的函数,该函数将更新列表对象。我已成功获取所需的对象并更改其中的值。如何更新回原始列表?

这是我的代码:

void updateTask(
  Guid id, String title, String start, String end, String timeleft) {
  final taskToBeUpdated = _tasks.firstWhere((element) => element.id == id);
  taskToBeUpdated.title = title;
  taskToBeUpdated.start = start;
  taskToBeUpdated.end = end;
  taskToBeUpdated.timeLeft = timeleft;
}

我知道我可以使用 forloop 来实现这一点

for (var i = 0; i < _tasks.length; i++) {
  if (_tasks[i].id == id) {
    _tasks[i].title = title;
    _tasks[i].start = start;
    _tasks[i].end = end;
    _tasks[i].timeLeft = timeleft;
  }
}

但是有没有更短的方法呢?

最佳答案

您的第一个代码应该直接修改列表中的对象,因为 dart 通过引用传递它。

尝试运行此代码以了解其工作原理:

List a = [{"dod":1}, {"dod":3}];

Map _b = a.firstWhere((e)=>e["dod"]==1);

_b["dod"] = 2;

print (a);

关于android - 更新列表中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62862253/

相关文章:

android - 安装了 Intel HAXM Android 模拟器的 CRITICAL_STRUCTURE_CORRUPTION BSOD Windows 8.1

python - list.append() 似乎无法正常工作

flutter - 如何在flutter中使用图标的轮廓边框?

javascript - 钛 : uncaught type error

android - Android JavascriptInterface 中的 Javascript 命名空间

android - utm_source=(not%20set)&utm_medium=(not%20set) Google play 推荐

ruby - 使用 redis 的列表数据结构或序列化的 ruby​​ hash 来存储数据

java - 使用 Java Streams 从 Nested List 和 Outer List 收集数据

dart - 如何在 flutter 中实现推送通知

flutter - 如何创建一个TextField来更改用户输入的字体和颜色?