Aqui também o código da ListaDeAlunos caso ajude.
public class ListaAlunoActivity extends AppCompatActivity {
final AlunoDAO dao = new AlunoDAO();
public static final String TITULO_APPBAR = "Lista de alunos";
private ArrayAdapter<Aluno> adapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_alunos);
setTitle(TITULO_APPBAR);
configuraFabNovoAluno();
configuraLista();
/*
dao.salvar(new Aluno("Bruno","123123","bruno@teste.com"));
dao.salvar(new Aluno("Jebises","123123123","jefrio@teste.com"));
*/
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add("Remover");
}
private void configuraFabNovoAluno() {
FloatingActionButton botaoNovoAluno = findViewById(R.id.activity_botao_novo_aluno);
botaoNovoAluno.setOnClickListener(view ->
abreFormularioModoInsereAluno()
);
}
private void abreFormularioModoInsereAluno() {
startActivity(new Intent(this, FormularioAlunoActivity.class));
}
@Override
protected void onResume() {
super.onResume();
atualizarAlunos();
}
private void atualizarAlunos() {
adapter.clear();
adapter.addAll(dao.todos());
}
private void configuraLista() {
ListView listaDeAlunos = findViewById(R.id.activity_lista_alunos_listview);
configuraAdapter(listaDeAlunos);
configuraListenerDeCliquePorItem(listaDeAlunos);
configuraListenerDeCliqueLongoPorItem(listaDeAlunos);
registerForContextMenu(listaDeAlunos);
}
private void configuraListenerDeCliqueLongoPorItem(@NonNull ListView listaDeAlunos) {
listaDeAlunos.setOnItemLongClickListener((adapterView, view, posicao, id) -> {
Aluno alunoEscolhido = (Aluno) adapterView.getItemAtPosition(posicao);
//removeAlunoLista(alunoEscolhido);
Log.i("OBS", alunoEscolhido.getId() + " " + dao.contadorDeIDs + " " + posicao);
return false;
});
}
private void removeAlunoLista(Aluno aluno) {
dao.remover(aluno);
adapter.remove(aluno);
}
private void configuraListenerDeCliquePorItem(@NonNull ListView listaDeAlunos) {
listaDeAlunos.setOnItemClickListener((adapterView, view, posicao, id) -> {
Aluno alunoEscolhido = (Aluno) adapterView.getItemAtPosition(posicao);
abreFormularioModoEditaAluno(alunoEscolhido);
});
}
private void abreFormularioModoEditaAluno(Aluno aluno) {
Intent vaiParaFormularioActivity = new Intent(ListaAlunoActivity.this,
FormularioAlunoActivity.class);
vaiParaFormularioActivity.putExtra(CHAVE_ALUNO, aluno);
startActivity(vaiParaFormularioActivity);
}
private void configuraAdapter(@NonNull ListView listaDeAlunos) {
adapter = new ArrayAdapter<>(
this, android.R.layout.simple_list_item_1);
listaDeAlunos.setAdapter(adapter);
}
}