首页 > 解决方案 > 如何在对话页面中创建弹出窗口?

问题描述

我想使用“AlertDialog”在对话页面中创建弹出窗口,但系统显示“无法添加窗口”。

您好,我想创建一个“强提醒”功能:用户可以为一个特定的联系人/群组添加书签,当用户收到特定联系人/群组发送的消息时,他/她的手机会振动 5-10 秒。

在我的设计中,用户可以在弹出窗口中点击“确认”按钮时停止震动,但无法实现,我尝试在mobicomkit\src\main\java\com\applozic\mobicomkit中添加此功能\api\notification\NotificationService.java,振动器已经创建,运行良好,但是无法创建弹窗。

public void warn(){
    vibrator = 
 (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);
    long[] pattern = {100, 400, 100, 400};
    vibrator.vibrate(pattern, 2);
    final  AlertDialog.Builder builder2 = new AlertDialog.Builder(context);
    builder2.setTitle("Warning")
            .setMessage("You have one important message !")
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog,
                                    int which) {
                    vibrator.cancel();
                }
            })
            .show();

 }


 Caused by: android.view.WindowManager$BadTokenException: Unable to add 
 window -- token null is not valid; is your activity running?
    at android.view.ViewRootImpl.setView(ViewRootImpl.java:785)
    at 
 android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:356)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
    at android.app.Dialog.show(Dialog.java:352)

标签: javaandroid

解决方案


final  AlertDialog.Builder builder2 = new AlertDialog.Builder(context);

您传递的这个上下文不是有效的上下文,您可以尝试另一个。


推荐阅读