如何在“对话页面”中创建弹出窗口?

时间:2019-06-04 08:47:05

标签: java android

我想使用“ 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)

1 个答案:

答案 0 :(得分:1)

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

您传递的上下文不是有效的上下文,可以尝试其他上下文。