我想使用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...
谢谢
答案 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 (字符串)