Olá,
Após realizar as alterações finais para a migração do ArrayAdapter para o Adapter, como sugerido na aula 1 da parte 3 do curso de Android. Percebi que a opção "Remove" não esta funcionando.
Na tentativa de resolver o problema, olhei o LogCat e percebi que ao usar a opção "remover" que chama o método "remove" de outra classe, ocorre a " Exception dispatching input event".
Alguém poderia me informar como corrigir essa excecção?
Codigo da classe principal:
package com.curso.android.agenda.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.curso.android.agenda.R;
import com.curso.android.agenda.dao.AlunoDAO;
import com.curso.android.agenda.model.Aluno;
import com.curso.android.agenda.ui.adapter.ListaDeAlunoAdapter;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.List;
import static com.curso.android.agenda.ui.activity.ConstantesActivities.CHAVE_ALUNO;
public class ListaAlunosActivity extends AppCompatActivity {
public static final String TITULO_APPBAR = "Lista de Alunos";
private final AlunoDAO dao = new AlunoDAO();
private ListaDeAlunoAdapter adapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_aluno);
setTitle(TITULO_APPBAR);
configuraFabNovoAluno();
configuraLista();
dao.salva(new Aluno("Amanda", "111110000", "Amanda@emial.com"));
dao.salva(new Aluno("Ananda", "222220000", "ananda@email.com"));
dao.salva(new Aluno("Heleno", "333330000", "heleno@email.com"));
}
Classe onde o método "remove" está localizado:
package com.curso.android.agenda.ui.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.curso.android.agenda.R;
import com.curso.android.agenda.model.Aluno;
import java.util.ArrayList;
import java.util.List;
public class ListaDeAlunoAdapter extends BaseAdapter {
private final List<Aluno> alunos = new ArrayList<>();
private Context context;
public ListaDeAlunoAdapter(Context context) {
this.context = context;
}
@Override
public int getCount() {
return alunos.size();
}
@Override
public Aluno getItem(int posicao) {
return alunos.get(posicao);
}
@Override
public long getItemId(int posicao) {
return alunos.get(posicao).getId();
}
@Override
public View getView(int posicao, View view, ViewGroup viewGroup) {
View viewCriada = LayoutInflater.from(context).inflate(R.layout.item_aluno, viewGroup, false);
Aluno alunoDevolvido = alunos.get(posicao);
TextView nome = viewCriada.findViewById(R.id.item_aluno_nome);
nome.setText(alunoDevolvido.getNome());
TextView telefone = viewCriada.findViewById(R.id.item_aluno_telefone);
telefone.setText(alunoDevolvido.getTelefone());
return viewCriada;
}
public void clear() {
alunos.clear();
}
public void addAll(List<Aluno> aluno) {
this.alunos.addAll(aluno);
}
public void remove(Aluno aluno) {
alunos.remove(aluno);
}
}
Desde já agradeço!