问题描述
class _UpdateViewState extends State<UpdateView> {
var dropDownValue = "Vaccine";
@override
Widget build(BuildContext context) {
void getDropDownItem(){
print(val); //Need help here
;}
return Scaffold(
body: new Column(
children: <Widget>[
SizedBox(height: 100),new ListTile(
leading: const Icon(Icons.person),title: TextField(
decoration: Inputdecoration(
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(12.0)),borderSide: BorderSide(color: Colors.blue,width: 2),),focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)),borderSide: BorderSide(color: Colors.blue),border: OutlineInputBorder(),labelText: 'Enter Provider Name Here',hintText: 'Provider Name',}
在这个 ListTile 中,我试图收集文本值并打印。我什至不确定如何从 TextField 收集值。在教程中,这部分被跳过了。请帮忙
解决方法
您可以在 TextField 中设置控制器
获取控制器变量
TextEditingController controller = new TextEditingController();
在 TextField 设置控制器
TextField(
controller: controller,decoration: InputDecoration(
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(12.0)),borderSide: BorderSide(color: Colors.blue,width: 2),),focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0)),borderSide: BorderSide(color: Colors.blue),border: OutlineInputBorder(),labelText: 'Enter Provider Name Here',hintText: 'Provider Name',)
你可以使用控制器获取文本
controller.text
,
您需要使用 TextEditingController ,例如:
TextEditingController _myController = TextEditingController();
final textfield = TextField(
decoration: InputDecoration(
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(12.0)),
然后您可以使用 _myController.text 属性访问此值
,有多种方法可以做到:
-
声明一个变量并为其赋值-
String textvalue; TextField( onChanged: (value) { email = value; },
)
-
通过分配 TextEditingController()-
TextEditingController textController; TextField( controller: textController,
现在用作
var value = textColtroller.text;