Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Cannot Find Symbol: adapterView

Olá, pessoal! Quando vou executar o app, o Android Studio me mostra esse erro relacionado a essa parte de código do ListaAlunosActivity:

@Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int posicao, long id) {
                Aluno alunoEscolhido = (Aluno) adapterView.getItemAtPosition(posicao);
                dao.remove(alunoEscolhido);
                return true;
            }

Usei as soluções sugeridas pelo Android Studio mas nenhuma delas resolve. Alguém sabe me dizer onde errei? Vou mandar o código completo abaixo. Agradeço desde já!

public class ListaAlunosActivity extends AppCompatActivity {

    public static final String TITULO_APPBAR = "Lista de Alunos";
    private final AlunoDAO dao = new AlunoDAO();

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

        setTitle(TITULO_APPBAR);
        setContentView(R.layout.activity_lista_alunos);
        configuraFabNovoAluno();
        dao.salva(new Aluno("Nádia", "11223344", "santuary"));
        dao.salva(new Aluno("Hawkami", "11223344", "azaghar"));
    }

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

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

    @Override
    protected void onResume() {
        super.onResume();
        configuraLista();
    }

    private void configuraLista() {
        ListView listaDeAlunos = findViewById(R.id.activity_lista_de_alunos_listview);
        final List<Aluno> alunos = dao.todos();
        configuraAdapter(listaDeAlunos, alunos);
        configuraListernerDeCliquePorItem(listaDeAlunos);
        listaDeAlunos.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int posicao, long id) {
                Aluno alunoEscolhido = (Aluno) adapterView.getItemAtPosition(posicao);
                dao.remove(alunoEscolhido);
                return true;
            }
        });
    }

    private void configuraListernerDeCliquePorItem(ListView listaDeAlunos) {
        listaDeAlunos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int posicao, long id){
                Aluno alunoEscolhido = (Aluno) adapterView.getItemAtPosition(posicao);
                abreFormularioModoEditaAluno(alunoEscolhido);
            }
        });
    }

    private void abreFormularioModoEditaAluno(Aluno aluno) {
        Intent vaiParaFormularioActivity = new Intent(ListaAlunosActivity.this, FormularioAlunoActivity.class);
        vaiParaFormularioActivity.putExtra(ConstantesActivities.CHAVE_ALUNO, aluno);
        startActivity(vaiParaFormularioActivity);
    }

    private void configuraAdapter(ListView listaDeAlunos, List<Aluno> alunos) {
        listaDeAlunos.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, alunos));
    }
}
2 respostas
solução!

Paulo

Nesse bloco:

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int posicao, long id) {
    Aluno alunoEscolhido = (Aluno) adapterView.getItemAtPosition(posicao);
    dao.remove(alunoEscolhido);
    return true;
}

Você chamou o parametro de parent e tá usando adapterView, por isso não tá rolando.

Só escolher um dos 2 e manter no parametro e codigo que deve solucionar

Nossa, eu nem tinha percebido! Foi falta de atenção da minha parte, é só mudar o parâmetro para adapterView. Muito obrigado, Matheus!