Como posso criar um diálogo Construtor de Alerta em uma classe RecyclerView.Adapter

Rosheed Ajayi:

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

P. I:

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 Viewinstâ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
}

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=236980&siteId=1
Recomendado
Clasificación