【问题标题】:How can i get int data from TextEditingController in flutter我如何从 Flutter 中的 TextEditingController 获取 int 数据
【发布时间】:2019-10-06 00:25:10
【问题描述】:

我想在 Flutter 中获取 TextField() 中输入的 int 数据,我使用 TextEditingController:

TextEditingController _section_id = new TextEditingController();

并在其中使用此控制器:

TextField(controller: _section_id,
                keyboardType: TextInputType.number,)

但是现在,我怎样才能获得 int 数据? 我尝试这种方式

Repository().placeAddApiProvider(_section_id.text)

但它只是字符串,并尝试强制转换为 int,

Repository().placeAddApiProvider(_section_id.text as int)

 but it is not work show me this error:
Unhandled Exception: type 'String' is not a subtype of type 'int' in type cast
E/flutter ( 6950): #0      AddPlaceState.build.<anonymous closure> (package:mosul/src/ui/users/add_place.dart:93:50)
E/flutter ( 6950): <asynchronous suspension>
E/flutter ( 6950): #1      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:513:14)
E/flutter ( 6950): #2      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:568:30)
E/flutter ( 6950): #3      GestureRecognizer.invokeCallback (package:flutter/src/gestu...

谢谢

【问题讨论】:

    标签: flutter textfield


    【解决方案1】:

    解析你从文本字段[限制它只输入数字]到 Int 并使用 int.tryParse(String) 如果你不担心转换不成功或者如果你这样做然后使用 int.parse (字符串)

    【讨论】:

      【解决方案2】:

      在 TextField onChanged 内

       onChanged: (s) {
        int s = int.parse(
         _section_id.text);
          },
      

      【讨论】:

        【解决方案3】:

        有时我们想用 tryParse 代替解析。 int qty=int.tryParse(qtyController.text);

        【讨论】:

          【解决方案4】:

          当我们想从 TextEditingController 获取整数时,这样做,

           int var =int.parse(_section_id.text);
          

          【讨论】:

            【解决方案5】:

            您不能将String 强制转换为int,因为它们不是从同一个父类继承的。您需要对其进行解析。

            Repository().placeAddApiProvider(int.parse(_section_id.text))
            

            【讨论】:

            • int.parse(controller.text) 导致错误。未处理的异常:FormatException:无效数字(在字符 1 处)
            • 因此如果 int.parse(controller.text) 产生错误则使用 int.tryParse(controller.text)
            猜你喜欢
            • 2021-04-02
            • 2019-08-08
            • 2020-08-01
            • 2022-12-19
            • 1970-01-01
            • 2021-06-02
            • 2019-02-07
            • 1970-01-01
            • 2021-12-24
            相关资源
            最近更新 更多