Java 致命异常:令牌null无效;你的活动正在进行吗?

Java 致命异常:令牌null无效;你的活动正在进行吗?,java,android,fatal-error,Java,Android,Fatal Error,我是Android开发的新手,我正在尝试从一个Java类调用AlertDialog,该类构建适配器,为RecyclerView提供列表。该类Adapter类不是活动类,我得到错误: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? at android.view.ViewRootImpl.setVi

我是Android开发的新手,我正在尝试从一个Java类调用AlertDialog,该类构建适配器,为RecyclerView提供列表。该类Adapter类不是活动类,我得到错误:

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
    at android.view.ViewRootImpl.setView(ViewRootImpl.java:798)
    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:356)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
    at android.app.Dialog.show(Dialog.java:329)
    at android.app.AlertDialog$Builder.show(AlertDialog.java:1125)
    at com.urcamadon.apexktruckracer.adapter.AdapterListaCampanhas$2.onClick(AdapterListaCampanhas.java:93)
    at android.view.View.performClick(View.java:6597)
我的代码:

public void onBindViewHolder (@NonNull MyViewHolder holder, final int position) {

    final Campanha campanha = listaCampanhas.get(position);
    holder.nomeCampanha.setText(campanha.getNome_campanha());
    holder.listaJogadores.setText(campanha.getListaJogadores());
    holder.btEditarCampanha.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intent = new Intent(context, CampanhaCadastroActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.putExtra("campanhaSelecionada",listaCampanhas.get(position));

            context.startActivity(intent);
        }

    });
    holder.btExcluirCamapanha.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            AlertDialog.Builder dialog = new AlertDialog.Builder(context);
            dialog.setTitle("Confirmar exclusão");
            dialog.setMessage(context.getResources().getString(R.string.pergunta_exclusao) +
                   " " + campanha.getNome_campanha().toUpperCase() + " ?");
            dialog.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                    CampanhaDAO campanhaDAO = new CampanhaDAO(context);

                    if(campanhaDAO.deletar(listaCampanhas.get(position))){
                        //ListarCampanhaActivity.carregarListaCampanhas();
                        Toast.makeText(context,
                                "Campanha excluida com sucesso!",
                                Toast.LENGTH_SHORT).show();
                    }else{
                        Toast.makeText(context,
                                "Erro ao excluir campanha!",
                                Toast.LENGTH_SHORT).show();
                    }
                }
            });
            dialog.setNegativeButton("Não", null);
            dialog.create();
            dialog.show(); // The problem happens here.
        }
    });