Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Extends de ArrayAdapter no lugar do BaseAdapter!

Bom noite, ao criar meu adapter personalizado de lista de alunos, acabei achando mais rápido fazer um extends de ArrayAdapter do que BaseAdapter, porque assim só preciso fazer o override do getView e terei todo comportamento que já tinha antes quando implementava o ArrayAdapter na minha activity. mantendo o msm comportamento de setar o nome e telefone nas TextView do layout R.layout.item_aluno .

OBS: vendo o código do ArrayAdapter, notei que é o método createViewFromResource que é chamado pelo getView é o responsável por executa um tratamento para saber se é um TextView, então se eu sobrescrever o getView resolveria o problema do java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView

Gostaria de saber se isso seria uma má prática ?

segue o código:

package br.com.agenda.ui.adapter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import androidx.annotation.NonNull;

import br.com.agenda.R;
import br.com.agenda.model.Aluno;

public class ListaAlunosAdapter extends ArrayAdapter<Aluno> {

    public ListaAlunosAdapter(@NonNull Context context) {
        super(context, R.layout.item_aluno);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View viewCriada = LayoutInflater.from(super.getContext()).inflate(R.layout.item_aluno, parent, false);
        ((TextView)viewCriada.findViewById(R.id.item_aluno_nome)).setText(getItem(position).getNome());
        ((TextView)viewCriada.findViewById(R.id.item_aluno_telefone)).setText(getItem(position).getTelefone());
        return viewCriada;
    }
}
1 resposta
solução!

Oi Willian tudo bem ?

Cara é mais comum você ver a galera usando o BaseAdapter, contudo atualmente a galera usa outra view para manipular lista, conhecida como RecyclerView inclusive tem curso sobre ela aqui na plataforma :D