Java 警报对话框无法添加窗口错误

Java 警报对话框无法添加窗口错误,java,android,Java,Android,我正在尝试使用此代码从RecyclerView.Adapter创建AlertDialog AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(context, R.style.AppTheme)); alertDialogBuilder.setView(R.layout.reserve_dialog); alertDialogBuilder.create(); alert

我正在尝试使用此代码从
RecyclerView.Adapter
创建
AlertDialog

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(context, R.style.AppTheme));
alertDialogBuilder.setView(R.layout.reserve_dialog);
alertDialogBuilder.create();
alertDialogBuilder.show();
但我在logcat中得到了这个错误:

Theme: themes:{}
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

怎么了?

不要使用getApplicationContext(),只需使用ActivityName.this

   AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new  ContextThemeWrapper(activity, R.style.AppTheme));
   alertDialogBuilder.setView(R.layout.reserve_dialog);
   alertDialogBuilder.create();
   if(!isFinishing()){
    alertDialogBuilder.show();
   }

删除getApplicationContext()并传递活动上下文

您正在传递context.getApplicationContext()

而不是传递活动上下文

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(MainActivity.this, R.style.AppTheme));
    alertDialogBuilder.setView(R.layout.reserve_dialog);
    alertDialogBuilder.create();
    alertDialogBuilder.show();
内部新对话(你的活动、这个、风格)


如果您在
RecylerView.Adapter
中创建对话框,则希望它能得到解决,在适配器的构造函数中传递活动对象,并在创建生成器时使用对象本身-

    if (!activity.isFinishing()) {
      AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(activity, R.style.AppTheme));
      alertDialogBuilder.setView(R.layout.reserve_dialog);
      alertDialogBuilder.create();
      alertDialogBuilder.show();
    }

当您在非活动类中显示对话框时,必须将活动作为参数传递。

您在哪里创建了警报对话框..在活动或片段..中?在
RecyclerView.Adapter中
您在适配器中传递的内容表示活动或上下文。。?将上下文更改为活动。我正在传递
活动。此
。我想我需要添加类似于意图的标志,但我找不到它在上下文中是如何工作的。非常适合我。请像下面这样使用上下文=itemView.getContext();onbindviewholder@jhamandasw中没有itemView,您会得到什么异常?当您创建适配器构造函数时,也会遇到同样的异常,你给它传递了正确的上下文吗?我在另一个里面使用recyclerview,所以我传递Activity。这个给第一个recyclerview适配器,然后从第一个给第二个让我们。没有我使用Activity的Activity。这你能告诉我实际的类类型是什么吗???
recyclerview.adapter
btw它已经解决了