Для выполнения функции при нажатии на кнопку и получения текста из текстового поля ввода в рамках разработки с использованием Flutter нужно выполнить следующие шаги.
- Создать текстовое поле ввода и кнопку в файле разметки (например, в файле
main.dart
):
import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: MyHomePage(), ); } } class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { String _inputText = ''; void _onButtonPressed() { setState(() { _inputText = _textFieldController.text; }); } final TextEditingController _textFieldController = TextEditingController(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Flutter Demo Home Page'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ TextField( controller: _textFieldController, decoration: InputDecoration(labelText: 'Enter your text'), ), RaisedButton( onPressed: _onButtonPressed, child: Text('Press me'), ), Text('Input text: $_inputText'), ], ), ), ); } }
- Внутри класса, отвечающего за состояние (например,
_MyHomePageState
), объявляем переменную_inputText
, в которую будет сохраняться текст из поля ввода.
- Создаем функцию
_onButtonPressed
, которая вызывается при нажатии на кнопку. Внутри этой функции мы используем методsetState
, чтобы обновить состояние виджета и присвоить переменной_inputText
значение, содержащееся в текстовом поле ввода.
- Создаем экземпляр
TextEditingController
для управления текстовым полем ввода.
- Для текстового поля ввода задаем контроллер, используя созданный экземпляр
TextEditingController
.
- Внутри метода
build
размещаем текстовое поле ввода, кнопку и виджетText
, который будет отображать введенный текст. При этом привязываемonPressed
кнопки к функции_onButtonPressed
.
- Выводим текст из переменной
_inputText
с помощью виджетаText
внутри методаbuild
. Таким образом, при каждом обновлении состояния виджета, текст будет отображаться соответственно.
Таким образом, при выполнении этих шагов вы сможете получить текст из текстового поля ввода при нажатии на кнопку и использовать его дальше в своем приложении.