Flutter:如何从listview.builder中的文本字段计算值

时间:2019-02-12 04:46:33

标签: dart flutter

我想从listview的文本字段中检索和计算输入值。如何实现?

3 个答案:

答案 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

enter image description here