我需要提取FutureBuilder列表项索引来编辑另一个屏幕MyForm上的列表项。
在下面的代码中,快照有数据,我创建了列表。
当我点击一个列表项时,我将转到MyForm屏幕来编辑列表项。
问题:我需要知道我点击的列表项的索引号。
在MyForm屏幕上,我想使用相同的索引号更新列表项。
请告知如何提取列表索引号。
Widget jlist = SizedBox(width: 800, height: 500, child: FutureBuilder<List<Job>?>(future: readAllItems(),builder: (BuildContext context, AsyncSnapshot<List<Job>?> snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const CircularProgressIndicator();
} else if (snapshot.hasError) {
return ListView.separated(shrinkWrap: true,itemCount: MyFormState.jobs.length,itemBuilder: (BuildContext context, int index) {
return Container(height: 100, child: SingleChildScrollView(child: Column(mainAxisAlignment: MainAxisAlignment.spaceEvenly,mainAxisSize: MainAxisSize.min,children: <Widget>[Text('')],)));
},separatorBuilder: (BuildContext context,int index) => const Divider());
} else if (snapshot.hasData) {
List<Job> items = snapshot.data!;
return ListView.separated(shrinkWrap: true,itemCount: items.length,itemBuilder: (BuildContext context, int index) {
return Container(height: 100, child: SingleChildScrollView(child: Column(mainAxisAlignment: MainAxisAlignment.spaceEvenly,mainAxisSize: MainAxisSize.min,children: <Widget>[
ListTile(title: Text(items[index].Description,style: TextStyle(fontSize: 11)),style: TextStyle(fontSize: 11)),onTap:() {
//How do I extract the list index number to use on MyForm screen?
MyFormState.myNote.text = items[index].Description;
Navigator.push(context, MaterialPageRoute(builder: (context) => MyForm()));
})])));
},separatorBuilder: (BuildContext context,int index) => const Divider());
}
else {
return const Text('No data available');
}
}));
谢谢你
1条答案
按热度按时间vc6uscn91#
您可以将索引值作为参数传递给下一个视图,在您的情况下是MyForm屏幕,如下所示:
这就是如何从下一个视图MyForm中检索它
这就是你的构造函数应该是这样的
这是你如何调用你想在代码中使用的索引:
我希望这能解决你的问题