2
respostas

Não estou conseguindo realizar a remoção

Boa noite

Pessoal, acompanhando a aula do professor, sobre remoção pelo AlertDialog, estou tentando remover uma aluno, porém a minha aplicação depois que eu cadastro um aluno novo, quando eu clico na lista de aluno, é como se eu tivesse clicando em nada, pois nem apresenta o menu. Segue lista Alunos Acti

2 respostas

Segue o código do Lista de AlunosActivity

package cursoalura.com.br.ui.activity;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
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.AdapterView.OnItemClickListener;
import android.widget.ListView;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

import cursoalura.com.br.R;
import cursoalura.com.br.dao.AlunoDao;
import cursoalura.com.br.model.Aluno;
import cursoalura.com.br.ui.adapter.ListaAlunosAdapter;

import static cursoalura.com.br.ui.activity.ConstatesActivities.CHAVE_ALUNO;


public class ListaAlunosActivity extends AppCompatActivity {

    public static final String TITULO_APPBAR = "Lista de alunos";
    public static final String TAG = "aluno";
    private final AlunoDao dao = new AlunoDao();
    private ListaAlunosAdapter adapter;
    // private ArrayAdapter<Aluno> adapter;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // TextView aluno = new TextView(this);
        // aluno.setText("Cleriston Lima");

        // A sigla R significa que irá pegar do resources

        setContentView(R.layout.activity_lista_alunos);

        setTitle(TITULO_APPBAR);

        // Criando a lista
        // List<String> alunos = new ArrayList<>(Arrays.asList("Cleriston", "Thiago", "Igor", "Ana", "Andressa"));

        configuraFabNovoAluno();
        configuraLista(dao);

        // O dialog apresenta uma view sobre-pondo a view da activity.
       //  Dialog dialog = new Dialog(this);
       // dialog.show();

      //  for (int i = 0; i < 10; i++) {


          //  dao.salva(new Aluno("Panca", "11947164589", "panca@gmail.com"));
       // }


        // android.R.layout - Serve para pegar os layouts que ja vem pronto do framework

        // TextView primeiroAluno = findViewById(R.id.textView);
        // TextView segundoAluno = findViewById(R.id.textView2);
        // TextView terceiroAluno = findViewById(R.id.textView3);

        // Irá pegar as posições do text view
        // primeiroAluno.setText(alunos.get(0));
        // segundoAluno.setText(alunos.get(1));
        // terceiroAluno.setText(alunos.get(2));

    }

    // Serve para criar um menu
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        getMenuInflater().inflate(R.menu.activity_lista_aluno_menu, menu);

    }

    // Irá pegar as informações do aluno para remover
    @Override
    public boolean onContextItemSelected (MenuItem item) {

        int itemId = item.getItemId();
        // Verifica se bate com o menu esperado.
        if (itemId == R.id.activity_lista_alunos_menu_remover){

            confirmaRemocao(item);
        }

        return super.onContextItemSelected(item);
    }

    private void confirmaRemocao(final MenuItem item) {
        new AlertDialog
                .Builder(this)
                .setTitle("Removendo Aluno")
                .setMessage("Tem certeza que deseja remover o aluno?")
                // Botoes de confirmações

                .setPositiveButton("Sim", new DialogInterface.OnClickListener() {

                    // Irá usar uma interface para trazer a remoção ao clicar em sim na mensagem
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        AdapterView.AdapterContextMenuInfo menuInfo =
                                (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
                        Aluno alunoEscolhido = adapter.getItem(menuInfo.position);
                        remove(alunoEscolhido);

                    }
                })
                .setNegativeButton("Não", null)
                .show();
    }

    private void configuraFabNovoAluno() {
        FloatingActionButton botaoNovoAluno = findViewById(R.id.activity_lista_alunos_fab_novo_aluno);
        botaoNovoAluno.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                abreFormularioModoInsereAluno();
            }
        });
    }

    private void abreFormularioModoInsereAluno() {
        startActivity(new Intent(this, FormularioAlunoActivity.class));
    }

    @Override
    protected void onResume() {
        super.onResume();
        atualiza

`

Oi Cleriston, tudo bem? Me disponibiliza o projeto completo pra mim testar? Que erro está aparecendo pra você no LogCat? Já deu uma olhada?