如何 edit/delete listview.builder 中的项目在不同 类 中

How to edit/delete item in listview.builder in different classes

我试过了

setState(() => queueData.removeAt(widget.number-1);

来自 QueueGenerator 的按钮 class

TextButton(
                      onPressed: () {
                        Navigator.pop(context, "OK");
                        setState(() {
                          // remove and update listview ?
                          queueData[widget.number-1] = _controller
                              .text
                              .toString();
                        });
                      },
                      child: Text("Confirm",
                          style: Theme.of(context).textTheme.labelSmall))

listview.builder 的列表(这与 classes 在不同的文件中)

List<String> queueData = [];
List<String> queueTemp = [];

Listview.builder

ListView.builder(
                            itemCount: qList.length,
                            itemBuilder: (context, index) {

                              return QueueGenerator(
                                  number: index + 1,
                                  description: qList[index]);
                            })

好吧,你可以列出这两个列表

List<String> queueData = [];
List<String> queueTemp = [];

作为全局变量并在那里使用它们而不将它们作为参数传递到小部件中 快速解决方案,但我不推荐它

或者您需要将它们作为私有变量放入提供程序中,并为它们创建 getter 和 setter 函数,以便您可以编辑它们

注意:当您调用他们所在的提供商时,请确保监听为真以查看更改