Flutter HiveDb добавляет элемент в список
В настоящее время я застрял здесь, мое текущее мышление не может найти решение добавления элемента в список и удаления элемента из списка в flutter Hive Db и удаления элемента из hive db. Я хочу, чтобы пользователь обновил любые данные в базе данных, но есть некоторые ограничения в
вот чего я хочу достичь
{
"title": "List1",
"data": [
{
"title": " title",
"details": "details",
"data": [
{
"title": " title",
"details": " details"
},
{
"title": " title",
"details": " details"
}
]
},
{
"title": " title",
"details": " details",
"data": [
{
"title": " title",
"details": "details"
},
{
"title": " title",
"details": " details"
}
]
}
]
}
Модели данных
0
class TodoList {
String title;
List<Todo> todos;
TodoList({this.title, this.todos});
TodoList.fromJson(Map<String, dynamic> json)
: title = json['title'],
todos = json['todos'];
Map<String, dynamic> toJson() => {
'title' : title,
'todos': todos
};
}
л
class Todo {
Todo({this.details, this.done, this.title});
String title;
String details;
bool done = false;
List<Task> task;
Todo.fromJson(Map<String, dynamic>parsedJson)
:title = parsedJson['title'],
details = parsedJson['details'],
done = parsedJson['done'],
task = parsedJson['task'];
Map<String, dynamic> toJson() => {
'title': title,
'details': details,
'done': done,
'task': task
};
}
2
class Task {
Task({this.details, this.done, this.title});
String title;
String details;
bool done =false;
Task.fromJson(Map<String, dynamic>parsedJson)
:title = parsedJson['title'],
details = parsedJson['details'],
done = parsedJson['done'];
}
Это то, что у меня есть и не работает....
final todoData = todos.getAt(0);
Map todoJson = jsonDecode(todoData);
final allData = TodoList.fromJson(todoJson);
print(allData);
_listTittle = allData.title;
print(_listTittle);
List data = allData.todos;
Todo todo = data == null ? todoIns : data[index];
bool done = todo.done;
done = done == null ? false : done;
return MaterialButton(
padding: EdgeInsets.zero,
onPressed: () {},
child: Container(
color: Colors.white,
child: ListTile(
leading: IconButton(
icon: done
? Icon(
Icons.done,
color: Colors.red,
)
: Icon(
Icons.done,
),
onPressed: () {
final todoData = Todo(
details: todo.details,
title: todo.title,
done: done ? false : true);
data.insert(index, todoData);
final listData =
TodoList(title: allData.title, todos: data);
updataTodo(listData, index);
}),
Любое предложение было бы полезным. Спасибо