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它已经解决了