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

Duvidas sobre o AdapterView

AdapterView.AdapterContextMenuInfo info =

(AdapterView.AdapterContextMenuInfo) menuInfo;

Aluno aluno = (Aluno) listaAlunos.getItemAtPosition(info.position);

As três linhas de código acima são dadas para fazer um menu de contexto que escuta o elemento deletar, na aula 5 de android. Mas eu não entendi muito bem como elas funcionam, alguma alma solicita poderia me ajudar?

ATT, obrigado.

Segue o código completo do método para a criação do menu:

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);

AlunoDao dao = new AlunoDao(ListaAlunosActivity.this);

dao.deleta(aluno);

dao.close();

return false;
            }
        });
    }
1 resposta
solução!

o ContextMenu.ContextMenuInfo ele da informações sobre o menu de contexto criado. o menuInfo que é ContextMenu.ContextMenuInfo é passado por parâmetro aqui

public void onCreateContextMenu(ContextMenu menu, View v, final 

ContextMenu.ContextMenuInfo menuInfo)  {
...// resto do código

Ainda dentro do método de criar é criado o método do clique, nele é feito a ação de pegar a posição exata do item clicado:

o AdapterView.AdapterContextMenuInfo ele pega as informações do ContextMenu e traz pro adapter.

AdapterView.AdapterContextMenuInfo info = 

(AdapterView.AdapterContextMenuInfo) menuInfo;

nessa linha é criado um AdapterView.AdapterContextMenuInfo chamado info e ele vai receber as informacoes do ContextMenuInfo que foi criado antes que no caso é o menuInfo e é feito um cast [ (AdapterView.AdapterContextMenuInfo) ] pra dar certeza que será um AdapterView.AdapterContextMenuInfo

Aqui o adapter e contextMenu ja estão linkados então a próxima linha vai ser pra pegar a posição do Aluno clicado

Aluno aluno = (Aluno) listaAlunos.getItemAtPosition(info.position);

é criado um aluno que vai receber a posição do aluno clicado atraves do info e é feito o cast [ (Aluno) ] para dar a certeza que será um aluno clicado

Tu pode olhar esses links aqui e aqui pra entender o que é o ContextMenu e o AdapterContextMenuInfo