Retrieve the value of a text field
Domains:
Flutter
In this recipe, learn how to retrieve the text a user has entered into a text field using the following steps:
-
Create a
TextEditingController. -
Supply the
TextEditingControllerto aTextField. - Display the current value of the text field.
1. Create a TextEditingController
To retrieve the text a user has entered into a text field, create a TextEditingController and supply it to a TextField or TextFormField.
// Define a custom Form widget.
class MyCustomForm extends StatefulWidget {
@override
_MyCustomFormState createState() => _MyCustomFormState();
}
// Define a corresponding State class.
// This class holds the data related to the Form.
class _MyCustomFormState extends State<MyCustomForm> {
// Create a text controller and use it to retrieve the current value
// of the TextField.
final myController = TextEditingController();
@override
void dispose() {
// Clean up the controller when the widget is disposed.
myController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
// Fill this out in the next step.
}
}
2. Supply the TextEditingController to a TextField
Now that you have a TextEditingController, wire it up to a text field using the controller property:
TextField(
controller: myController,
);
3. Display the current value of the text field
After supplying the TextEditingController to the text field, begin reading values. Use the text() method provided by the TextEditingController to retrieve the String that the user has entered into the text field.
The following code displays an alert dialog with the current value of the text field when the user taps a floating action button.
FloatingActionButton(
// When the user presses the button, show an alert dialog containing the
// text that the user has entered into the text field.
onPressed: () {
return showDialog(
context: context,
builder: (context) {
return AlertDialog(
// Retrieve the text the user has entered by using the
// TextEditingController.
content: Text(myController.text),
);
},
);
},
tooltip: 'Show me the value!',
child: Icon(Icons.text_fields),
);
Semantic portal