我是新来的 flutter 。我有一个包含联系人列表(姓名、电话、地址)的项目,当用户点击联系人时,我将他发送到编辑表单,我想用联系人数据填写表单。 我使用文本字段进行输入并通过小部件获取数据,例如:widget.contact.data['name']。 我找不到这个问题的任何答案。
最佳答案
有两种方法可以从 TextField 中访问文本,如 Flutter 的 docs 所示.
第一个是通过onChanged回调,有一个参数就是当前文本。
TextField(
onChanged: (text) {
// do what you want with the text
},
);
对于文本的更高级处理,包括从 build()
方法之外访问它,您可以使用 TextEditingController .
final _controller = TextEditingController();
然后您可以将其链接到您的 TextField:
TextField(
// other parameters
controller: _controller,
);
别忘了扔掉它!
@override
void dispose() {
// other dispose methods
_controller.dispose();
super.dispose();
}
现在您可以通过访问 _controller.text
的值或修改它来设置或获取文本。例如:
获取:print(_controller.text);
设置:_controller.text = 'newText'//现在 TextField 将写入 'newText'
或者您可以使用 addListener
来监听更改,因此每当更新文本时,都会调用您选择的函数:
@override
void initState() {
super.initState();
_controller.addListener(_handleText);
// other code here
}
_handleText() {
// do what you want with the text, for example:
print(_controller.text);
}
关于dart - flutter 将值设置为文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54987699/