Чтобы извлечь значение из диалога во Flutter, вы можете использовать различные методы в зависимости от типа используемого вами диалога. Вот несколько методов с примерами кода:
Метод 1: использование AlertDialog
TextField(
onChanged: (value) {
inputText = value;
},
),
действия:
TextButton(
дочерний элемент: Text(‘OK’),
onPressed: () {
Navigator.of(context).pop(inputText);
},
),
],
);
},
);
// Делаем что-нибудь с результатом
print(‘Введенное значение: $result’);
Метод 2: использование SimpleDialog
// Define a function to show the dialog
Future<void> _showInputDialog(BuildContext context) async {
String result = await showDialog(
context: context,
builder: (BuildContext context) {
String inputText = '';
return SimpleDialog(
title: Text('Enter a value'),
children: <Widget>[
TextField(
onChanged: (value) {
inputText = value;
},
),
TextButton(
child: Text('OK'),
onPressed: () {
Navigator.of(context).pop(inputText);
},
),
],
);
},
);
// Do something with the result
print('Value entered: $result');
}
Метод 3. Использование showDialog
и пользовательского контента
// Define a function to show the dialog
Future<void> _showInputDialog(BuildContext context) async {
String inputText = '';
return showDialog(
context: context,
builder: (BuildContext context) {
return Dialog(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text('Enter a value'),
TextField(
onChanged: (value) {
inputText = value;
},
),
TextButton(
child: Text('OK'),
onPressed: () {
Navigator.of(context).pop(inputText);
},
),
],
),
);
},
);
}
Во всех вышеперечисленных методах входное значение фиксируется и возвращается, когда пользователь нажимает кнопку «ОК». Затем вы можете обработать значение по мере необходимости.