-1
How can I make a filter for searching this code?
import 'package:flutter/material.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart';
import 'helper/anotacao_helper.dart';
import 'model/anotacao.dart';
class Home extends StatefulWidget {
const Home({Key? key}) : super(key: key);
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
final TextEditingController _tituloController = TextEditingController();
final TextEditingController _descricaoController = TextEditingController();
final _db = AnotacaoHelper();
List<Anotacao> _anotacoes = <Anotacao>[];
void _filterList(value) {
}
_exibirTelaCadastro() {
showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: const Text("Adicionar anotação"),
content: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
TextField(
controller: _tituloController,
autofocus: true,
decoration: const InputDecoration(
labelText: "Título", hintText: "Digite título..."),
),
TextField(
controller: _descricaoController,
decoration: const InputDecoration(
labelText: "Descrição", hintText: "Digite descrição..."),
)
],
),
actions: <Widget>[
ElevatedButton(
onPressed: () => Navigator.pop(context),
child: const Text("Cancelar")),
ElevatedButton(
onPressed: () {
//salvar
_salvarAnotacao();
Navigator.pop(context);
},
child: const Text("Salvar"))
],
);
});
}
_recuperarAnotacoes() async {
List anotacoesRecuperadas = await _db.recuperarAnotacoes();
List<Anotacao>? listaTemporaria = <Anotacao>[];
for (var item in anotacoesRecuperadas) {
Anotacao anotacao = Anotacao.fromMap(item);
listaTemporaria.add(anotacao);
}
setState(() {
_anotacoes = listaTemporaria!;
});
listaTemporaria = null;
//print("Lista anotacoes: " + anotacoesRecuperadas.toString() );
}
_salvarAnotacao() async {
String titulo = _tituloController.text;
String descricao = _descricaoController.text;
//print("data atual: " + DateTime.now().toString() );
Anotacao anotacao = Anotacao(titulo, descricao, DateTime.now().toString());
int resultado = await _db.salvarAnotacao(anotacao);
//print("salvar anotacao: " + resultado.toString());
_tituloController.clear();
_descricaoController.clear();
_recuperarAnotacoes();
}
_formatarData(String data) {
initializeDateFormatting("pt_BR");
//Year -> y month-> M Day -> d
// Hour -> H minute -> m second -> s
//var formatador = DateFormat("d/MMMM/y H:m:s");
var formatador = DateFormat.yMd("pt_BR");
DateTime dataConvertida = DateTime.parse(data);
String dataFormatada = formatador.format(dataConvertida);
return dataFormatada;
}
@override
void initState() {
super.initState();
_recuperarAnotacoes();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
toolbarHeight: 80,
title: Container(
padding: const EdgeInsets.symmetric(horizontal: 15),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
),
child: TextFormField(
decoration: const InputDecoration(
icon: Icon(Icons.search), hintText: "Pesquise aqui"),
onChanged: (value) {
setState(() {});
},
),
),
backgroundColor: Colors.lightGreen,
),
body: Column(
children: <Widget>[
Expanded(
child: ListView.builder(
itemCount: _anotacoes.length,
itemBuilder: (context, index) {
final anotacao = _anotacoes[index];
return Card(
child: ListTile(
title: Text(anotacao.titulo),
subtitle: Text(
"${_formatarData(anotacao.data)} - ${anotacao.descricao}"),
),
);
}))
],
),
floatingActionButton: FloatingActionButton(
backgroundColor: Colors.green,
foregroundColor: Colors.white,
child: const Icon(Icons.add),
onPressed: () {
_exibirTelaCadastro();
}),
);
}
}