Seguindo o post indicado na aula, ele informa que é necessario o uso de um ViewHolder para que o codigo compilasse, porem, sem ele o meu código se mantem sem erros. Não entendi o motivo. em seguida o meu Adapter:
public class ListaAlunosAdapter extends BaseAdapter {
private final List<Aluno> alunos = new ArrayList<>();
private final Context context;
private Aluno aluno;
private TextView txtNome;
private TextView txtTelefone;
public ListaAlunosAdapter(Context context) {
this.context = context;
}
//retorna a quantidade de elementos que o adapter terá
@Override
public int getCount() {
return alunos.size();
}
//retorna o elemento selecionado
@Override
public Aluno getItem(int position) {
return alunos.get(position);
}
//retorna o id do elemento selecionado
@Override
public long getItemId(int position) {
return alunos.get(position).getId();
}
//cria a nova view para cada elemento
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View viewCriada;
if(convertView ==null){
viewCriada = criarCard(parent);
vinculaTextView(viewCriada);
}else{
viewCriada = convertView;
}
aluno = alunos.get(position);
preencheTextView(aluno, viewCriada);
return viewCriada;
}
private void vinculaTextView(View viewCriada){
txtNome = viewCriada.findViewById(R.id.card_aluno_lista_alunos_nome);
txtTelefone = viewCriada.findViewById(R.id.card_aluno_lista_alunos_telefone);
}
private void preencheTextView(Aluno aluno, View viewCriada) {
txtNome.setText(aluno.getNome());
txtTelefone.setText(aluno.getTelefone());
}
private View criarCard(ViewGroup parent) {
return LayoutInflater.from(context).
inflate(R.layout.card_aluno_lista_alunos, parent, false);
}
public void atualizaAdapter(List<Aluno> alunos){
this.alunos.clear();
this.alunos.addAll(alunos);
notifyDataSetChanged();
}
public void remove(Aluno aluno) {
this.alunos.remove(aluno);
notifyDataSetChanged();
}
}