Я хочу создать приложение со списком задач с флаттером, но у меня возникают проблемы с сохранением ввода текста в список, уже созданный в другом отображаемом классе.
Я попытался создать объектв другом классе с установщиком, но поскольку я использую виджет с сохранением состояния, это не сработает, особенно потому, что я использую Lists () (представление списка) в теле скаффолда для отображения элементов списка
это мой класс просмотра списка
import 'package:flutter/material.dart';
import 'todo.dart';
class TodoListS extends StatefulWidget {
@override
TodoList createState() => TodoList();
}
class TodoList extends State<TodoListS> {
List<Todo> todos = [Todo(title:'Checktheicon'), Todo(title: 'help me')];
void setTodo(Todo todo)
{
todos.add(todo);
}
@override
Widget build(BuildContext context) {
return myListView(context,todos );
}
}
Widget myListView(BuildContext context, List<Todo> todos) {
// backing data
return ListView.builder(
itemCount: todos.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(todos[index].title),
leading: Icon(todos[index].icons),
);
},
);
}
Здесь я отображаю список
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
backgroundColor: Colors.pink[100], title: new Text('Todo List')),
body: TodoListS(),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add), onPressed: () => _displayDialog(context)),
);
}
Здесь я хочу получить ввод текста и сохранить его
_displayDialog(BuildContext context) {
return showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text('Insert Your to do'),
content: TextField(
controller: _textFieldController,
decoration: InputDecoration(hintText: "ie. Wash dishes"),
),
actions: <Widget>[
new FlatButton(
child: new Text('CANCEL'),
onPressed: () {
Navigator.of(context).pop();
},
),
new FlatButton(
child: new Text('ADD'),
onPressed: () {
var todo = new Todo(title: _textFieldController.value.text);
todol.setTodo(todo);
Navigator.of(context).pop();
},
)
],
);
});
}
Итак, сейчас ничего не сохраняется, отображается только моя ранее созданная задача, мой текстовый ввод необходимо добавить в список, чтобы его можно было отобразить.