HoAlertDialogBuilder na minha classe RecylerView.Adapater eu recebo um erro dizendo "no Builder não pode para a classe com.example.john.atsnotify.Adapter.PupilGroupAdapter"
i pode facilmente criar um diálogo de alerta Builder em uma classe de actividade regular, que se estende AppCompatActivity mas não de uma classe adaptadora. porque?
https://pastebin.com/WqXCG1ChAlertDialog.Builder builder = new AlertDialog.Builder(PupilGroupAdapter.this);
O argumento para o construtor (para o qual você está atualmente passando PupilGroupAdapter.this
) deve ser do tipo Context
. O adaptador não é um contexto, de modo que este está a falhar.
Você pode recuperar um contexto de qualquer View
instância através do getContext()
método. No seu caso, você está tentando mostrar a janela de alerta de um clique de botão, então você pode usar o contexto da vista passado para o ouvinte clique:
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
// ...
viewHolder.btnAdd.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
showAlertDialog(view.getContext()); // pass the context here
}
} );
}
private void showAlertDialog(Context context) { // receive the context here
AlertDialog.Builder builder = new AlertDialog.Builder(context); // use the context here
}