如何在颤振中按下的按钮上创建地图值列表
How do I create a list of map values on a button pressed in flutter
我正在尝试创建一个值列表,例如
{
"name1" : "one"
},
我从文本字段中得到上面提到的“一个”。假设我在三个单独的文本字段中输入了三个这样的值。
现在,当我按下提交按钮时,我必须创建一个名为“名称”的列表
names: [
{
"name1" : "one"
},
{
"name2" : "two"
},
{
"name3" : "three"
},
]
这里的“一”、“二”、“三”是textField值,我需要在有按钮点击事件时生成其余值
(我必须为 http post 创建许多这样的内容,我稍后会做,所以请随时让我知道更好的方法(如果存在)或者如果我的过程请更正我'标题错误)
你可以这样做:
List names = [
{"name1": "one"},
{"name2": "two"},
{"name3": "three"},
];
@override
Widget build(BuildContext context) {
return Container(
height: 300,
width: 300,
child: ListView.builder(
itemCount: names.length,
shrinkWrap: true,
itemBuilder: (BuildContext context, int index) {
return GestureDetector(
onTap: () {
//do what you want here for each item
print(names[index].keys.first.toString());
},
child: Text(names[index].keys.first.toString()));
},
),
);
}
在这里你生成 ListView
的文本,用 GestureDetector
包裹,
所以你根据你的列表生成一个文本列表,当你点击其中一个文本时,你可以根据你点击的项目做任何你想做的事情。
例如,前面代码的输出如下所示:
当你点击其中一个文本时,你可以根据点击的项目做任何你想做的事情(这里我只是将项目打印到控制台)。
您需要在按钮点击事件中添加列表中的所有 TextField 值,如下所示
var nameOne = TextEditingController();
var nameTwo = TextEditingController();
var nameThree = TextEditingController();
List<Map<String,String>> names = [];
void _submite() {
if (nameOne.text.isEmpty) {
print('Enter nameOne name');
} else if (nameTwo.text.isEmpty) {
print('Enter nameTwo name');
} else if (nameThree.text.isEmpty) {
print('Enter nameThree name');
} else {
names.add({"name1": nameOne.text});
names.add({"name2": nameTwo.text});
names.add({"name3": nameThree.text});
}
}
调用_submite()方法后
//输出:[{“name1”:“一个”},{“name2”:“两个”},{“name3”:“三个”},]
我正在尝试创建一个值列表,例如
{
"name1" : "one"
},
我从文本字段中得到上面提到的“一个”。假设我在三个单独的文本字段中输入了三个这样的值。 现在,当我按下提交按钮时,我必须创建一个名为“名称”的列表
names: [
{
"name1" : "one"
},
{
"name2" : "two"
},
{
"name3" : "three"
},
]
这里的“一”、“二”、“三”是textField值,我需要在有按钮点击事件时生成其余值
(我必须为 http post 创建许多这样的内容,我稍后会做,所以请随时让我知道更好的方法(如果存在)或者如果我的过程请更正我'标题错误)
你可以这样做:
List names = [
{"name1": "one"},
{"name2": "two"},
{"name3": "three"},
];
@override
Widget build(BuildContext context) {
return Container(
height: 300,
width: 300,
child: ListView.builder(
itemCount: names.length,
shrinkWrap: true,
itemBuilder: (BuildContext context, int index) {
return GestureDetector(
onTap: () {
//do what you want here for each item
print(names[index].keys.first.toString());
},
child: Text(names[index].keys.first.toString()));
},
),
);
}
在这里你生成 ListView
的文本,用 GestureDetector
包裹,
所以你根据你的列表生成一个文本列表,当你点击其中一个文本时,你可以根据你点击的项目做任何你想做的事情。
例如,前面代码的输出如下所示:
当你点击其中一个文本时,你可以根据点击的项目做任何你想做的事情(这里我只是将项目打印到控制台)。
您需要在按钮点击事件中添加列表中的所有 TextField 值,如下所示
var nameOne = TextEditingController();
var nameTwo = TextEditingController();
var nameThree = TextEditingController();
List<Map<String,String>> names = [];
void _submite() {
if (nameOne.text.isEmpty) {
print('Enter nameOne name');
} else if (nameTwo.text.isEmpty) {
print('Enter nameTwo name');
} else if (nameThree.text.isEmpty) {
print('Enter nameThree name');
} else {
names.add({"name1": nameOne.text});
names.add({"name2": nameTwo.text});
names.add({"name3": nameThree.text});
}
}
调用_submite()方法后
//输出:[{“name1”:“一个”},{“name2”:“两个”},{“name3”:“三个”},]