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

Erro ao recuperar item da lista

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.

1 resposta
solução!

Consegui resolver o problema já, eis a solução:

AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();