Java 致命异常:令牌null无效;你的活动正在进行吗?
我是Android开发的新手,我正在尝试从一个Java类调用AlertDialog,该类构建适配器,为RecyclerView提供列表。该类Adapter类不是活动类,我得到错误: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.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.
}
});