我如何在Flutter中从TextEditingController获取int数据

时间:2019-05-19 11:19:54

标签: flutter textfield

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

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...

谢谢

5 个答案:

答案 0 :(得分:2)

您不能将String强制转换为int,因为它们不继承自同一父类。您需要解析它。

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

答案 1 :(得分:0)

当我们想从TextEditingController中获取一个整数时,

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

在 TextField onChanged 内

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

答案 4 :(得分:0)

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