我想从listview的文本字段中检索和计算输入值。如何实现?
答案 0 :(得分:1)
您应定义TextEditingController
的列表,其长度与listview
相同,然后为列表中的每个TextField
分配此数组的对象,这将使您能够检索值是在编辑时还是在完成时。这是我说过的一个例子:
List<TextEditingController> textFieldControllers ;
在您的列表中:
textFieldControllers[index] = new TextEditingController() ;
new TextField(controller: textFieldControllers[index]);
之后,您可以通过以下方式检索值:
textFieldControllers[index].text
答案 1 :(得分:1)
精彩。在下面添加了一些适合我的用例的东西。
首先像这样List
定义一个List<TextEditingController> textFieldControllers=[];
然后像这样遍历在List.builder
中创建窗口小部件所使用的列表。
for (var i = 0; i < typesItem.length; i++) {
textFieldControllers.add(TextEditingController());
}
其中typesItem
是创建Listbuilder窗口小部件时使用的List项,以便与窗口小部件动态保持相同的长度。您可以在initState
方法上运行此代码
之后转到List.builder小部件并像这样初始化控制器。
textFieldControllers[index] = TextEditingController() ;
并像这样在您的return方法中设置TextField控制器
textFieldControllers[index]
因此,您可以通过使用
来获得全部价值。 textFieldControllers[index].text;
您可以根据自己的情况进行操作以适应情况
答案 2 :(得分:0)
List<TextEditingController> machPresent=[];
machPresent.add(TextEditingController(text: ''));
Container(
height: mainScreenHeight * 0.06,
width: mainScreenWidth * 0.3,
child: TextFormField(
keyboardType: TextInputType.number,
controller: machPresent[index],
enabled: true,
textAlign: TextAlign.center,
),
),
),
通过按钮按一个操作
Container(
height: mainScreenHeight * 0.06,
width: mainScreenWidth * 0.3,
child: RaisedButton(
onPressed: () {
submitForm(index);},
child: Text('Submit',textAlign: TextAlign.center),
),
),
dynamic submitForm(int index) {
var machValue=machPresent[index].text;
var f= machValue;
print(f);
}
结果
I/flutter ( 7914): fff888- -- -- -Select Status
I/flutter ( 7914): sourav- -- -- -Select Status