Não repara o código que ainda não o refinei kkk
Main:
public class MainActivity extends AppCompatActivity {
private static final String TITULO_APPBAR = "Lista de visitas";
private final ListaVisitasView listaVisitasView = new ListaVisitasView(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_visita);
setTitle(TITULO_APPBAR);
configuraLista();
}
@Override
protected void onResume() {
super.onResume();
listaVisitasView.atualizaVisitas();
}
private void vaiParaEditaVisita(Visita visitaClicada) {
Intent intent = new Intent(MainActivity.this, Cadastro_Visita.class);
intent.putExtra(CHAVE_VISITA, visitaClicada);
startActivity(intent);
}
ListaVisitasView:
public class ListaVisitasView {
private final ListaVisitasAdapter adapter;
private final VisitaDAO dao;
private final Context context;
private List<Visita> visitas = new ArrayList<>();
public ListaVisitasView(Context context) {
this.context = context;
//this.adapter = new ListaVisitasAdapter(this.context);
this.adapter = new ListaVisitasAdapter(visitas, this.context);
this.dao = new VisitaDAO();
}
public void atualizaVisitas() {
adapter.atualiza(dao.todos());
}
// public void configuraAdapter(ListView listaDeVisitas) {
// listaDeVisitas.setAdapter(adapter);
// }
public List<Visita> listaDoAdapterFiltrado(){
return adapter.getVisitas();
}
}
Adapter:
public class ListaVisitasAdapter extends BaseAdapter {
private List<Visita> visitas;
private final Context context;
public ListaVisitasAdapter(List<Visita> visitas, Context context) {
this.visitas = visitas;
this.context = context;
}
@Override
public int getCount() {
return visitas.size();
}
@Override
public Visita getItem(int posicao) {
return visitas.get(posicao);
}
@Override
public long getItemId(int posicao) {
return visitas.get(posicao).getId();
}
@Override
public View getView(int posicao, View view, ViewGroup viewGroup) {
View viewCriada = criaView(viewGroup);
Visita visita = visitas.get(posicao);
vincula(viewCriada, visita);
return viewCriada;
}
private View criaView(ViewGroup viewGroup) {
return LayoutInflater.from(context)
.inflate(R.layout.item_visita, viewGroup, false);
}
private void vincula(View view, Visita visita) {
ImageView imagemFamilia = view.findViewById(R.id.item_foto_familia);
imagemFamilia.setImageBitmap(visita.getFoto_familia());
TextView unidade = view.findViewById(R.id.item_visita_unidade);
unidade.setText(visita.getUnidade());
TextView nome_crianca = view.findViewById(R.id.item_visita_nome_crianca);
nome_crianca.setText(visita.getNome_crianca());
TextView turma = view.findViewById(R.id.item_visita_turma);
turma.setText(visita.getTurma());
TextView turno = view.findViewById(R.id.item_visita_turno);
turno.setText(visita.getTurno());
TextView nome_responsavel1 = view.findViewById(R.id.item_visita_nome_responsavel_1);
nome_responsavel1.setText(visita.getNome_responsavel_1());
TextView telefone_responsavel1 = view.findViewById(R.id.item_visita_telefones);
telefone_responsavel1.setText(visita.getTelefone_fixo_responsavel_1());
TextView email_responsavel1 = view.findViewById(R.id.item_visita_email_responsavel_1);
email_responsavel1.setText(visita.getEmail_responsavel_1());
TextView situacao = view.findViewById(R.id.item_visita_situacao);
situacao.setText(visita.getSituacao());
}
public void atualiza(List<Visita> visitas) {
List<Visita> visitas_filtradas = new ArrayList<>();
for (int i = 0; i < visitas.size(); i++) {
if (visitas.get(i).getTurno().equals("Manhã"))
visitas_filtradas.add(visitas.get(i));
}
this.visitas.clear();
this.visitas.addAll(visitas_filtradas);
notifyDataSetChanged();
}
public List<Visita> getVisitas() {
return visitas;
}
}