Acabei fazendo diferente da aula na hora de criar o menu de deletar o aluno. Ao invés de criar no código assim como na aula:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, final ContextMenu.ContextMenuInfo menuInfo) {
MenuItem deletar = menu.add("Deletar");
deletar.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener(){
@Override
public boolean onMenuItemClick(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
Aluno aluno = (Aluno) listaAlunos.getItemAtPosition(info.position);
//Toast.makeText(ListaAlunosActivity.this, "Deletar o aluno " + aluno.getNome(), Toast.LENGTH_SHORT).show();
AlunoDAO alunoDAO = new AlunoDAO(ListaAlunosActivity.this);
alunoDAO.deleta(aluno);
alunoDAO.close();
carregaLista();
return false;
}
});
}
Eu acabei criando um menu no xml e estou tendo dúvida na hora de pegar o item selecionando na lista
Fiz assim:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.delete:
Aluno aluno = (Aluno) listaAlunos.getItemAtPosition(((AdapterView.AdapterContextMenuInfo) item).position);
AlunoDAO alunoDAO = new AlunoDAO(ListaAlunosActivity.this);
alunoDAO.deleta(aluno);
alunoDAO.close();
carregaLista();
}
return super.onContextItemSelected(item);
}
}
Creio que o erro esteja na hora de pegar o item selecionando nessa linha:
Aluno aluno = (Aluno) listaAlunos.getItemAtPosition(((AdapterView.AdapterContextMenuInfo) item).position);
E o menu:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/delete"
android:title="@string/del">
</item>
<item
android:id="@+id/delete_mult"
android:title="@string/del_mul">
</item>
<item
android:id="@+id/editar"
android:title="@string/edit">
</item>
</menu>
Alguém consegue me ajudar? Desde já grato.