как я могу взять значение текстового поля и вернуть его в виде текста, но на другом экране?

#flutter #dart #textfield

Вопрос:

 @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Todo Add'),
        centerTitle: true,
      ),
      body: Container(
        child: Padding(
          padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
          child: Column(
            children: [
              TextField(
                controller: controller,
                onChanged: (value) => title = value,
                decoration: InputDecoration(hintText: 'Enter your title'),
              ),
              SizedBox(
                height: 10,
              ),
              TextField(
                controller: controller1,
                onChanged: (val) => body = val,
                decoration: InputDecoration(hintText: 'Enter your body'),
              ),
              SizedBox(
                height: 40,
              ),
              ElevatedButton(
                onPressed: () {
                  setText();
                },
                child: Text("Submit"),
              ),
              Text(
                'Title : $text',
                style: TextStyle(fontSize: 16),
              ),
              SizedBox(height: 10,),
              Text(
                'Body : $desc',
                style: TextStyle(fontSize: 16),
              ),
            ],
          ),
        ),
      ),
    );
  }
 

Комментарии:

1. Пожалуйста, отредактируйте свой код, он не читается.

2. Я поместил ваш код в блок кода, чтобы он был читаем, но вам все равно нужно будет объяснить, о чем вы спрашиваете (что вы подразумеваете под «другим экраном»?)

3. flutter.dev/документы/кулинарная книга/навигация/навигация-основы

4. Я хочу создать экземпляр значения текстового поля, чтобы я мог использовать это значение или распечатать его на любом другом экране

Ответ №1:

Вы можете получить текст текстового поля с помощью контроллеров.

 String textfield1 = controller.text;
 

И отправьте эти переменные, такие как аргументы, на другой экран

 Navigator.pushNamed(
      context,
      route,
      arguments: [controller.text, controller1.text]
    );
 

И получите эти аргументы на другом экране

 final args = ModalRoute.of(context).settings.arguments;