Передача двойных значений из текстового поля во Flutter: несколько методов и примеры кода

При разработке приложений Flutter передача двойных значений из текстового поля является распространенным требованием. В этой статье блога мы рассмотрим несколько методов достижения этой функциональности, сопровождаемые примерами кода. К концу этой статьи у вас будет множество вариантов выбора в зависимости от вашего конкретного случая использования.

Методы:

Метод 1. Анализ входной строки вручную
Метод 2. Использование функции double.tryParse()
Метод 3. Использование TextEditingController
Метод 4. Использование ValueNotifier

Давайте углубимся в каждый метод подробно:

Метод 1: анализ входной строки вручную
В этом методе мы извлекаем текст из текстового поля, вручную преобразуем его в значение типа double с помощью функции double.parse() и обрабатываем любые потенциальные ошибки. Вот пример:

String input = textFieldController.text;
double result = 0.0;
try {
  result = double.parse(input);
} catch (e) {
  // Handle parsing error
}

Метод 2: использование функции double.tryParse()
Функция double.tryParse() пытается проанализировать строковое представление значения типа double. Он возвращает значение null, если синтаксический анализ не удался. Вот пример:

String input = textFieldController.text;
double? result = double.tryParse(input);
if (result == null) {
  // Handle parsing error
}

Метод 3: использование TextEditingController
Класс TextEditingController позволяет вам управлять содержимым текстового поля и легко получать его значение. Вот пример:

TextEditingController textFieldController = TextEditingController();
double? result;
// Inside your widget build method
TextField(
  controller: textFieldController,
  keyboardType: TextInputType.number,
);
// Retrieving the double value
String input = textFieldController.text;
result = double.tryParse(input);
if (result == null) {
  // Handle parsing error
}

Метод 4: использование ValueNotifier
ValueNotifier — это простой класс, который хранит одно значение и уведомляет своих слушателей при изменении значения. Его можно использовать для отслеживания изменений значения текстового поля. Вот пример:

ValueNotifier<double?> valueNotifier = ValueNotifier<double?>(null);
// Inside your widget build method
TextField(
  onChanged: (value) {
    double? result = double.tryParse(value);
    valueNotifier.value = result;
  },
  keyboardType: TextInputType.number,
);
// Accessing the double value
double? result = valueNotifier.value;
if (result == null) {
  // Handle parsing error
}

В этой статье мы рассмотрели несколько методов передачи двойных значений из текстового поля во Flutter. Используя такие методы, как ручной анализ, используя функцию double.tryParse(), TextEditingController и ValueNotifier, вы можете эффективно обрабатывать пользовательский ввод и извлекать значения типа Double. Выберите метод, который лучше всего подходит для вашего проекта, и наслаждайтесь беспроблемной разработкой во Flutter.