java - 如何在对话页面中创建弹出窗口?
问题描述
我想使用“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)
解决方案
final AlertDialog.Builder builder2 = new AlertDialog.Builder(context);
您传递的这个上下文不是有效的上下文,您可以尝试另一个。
推荐阅读
- php - ERR_TOO_MANY_REDIRECTS - 两个标题链接给了我那个错误
- unity3d - 直接分配速度与 AddForce()
- r - 在 R 中使用内部连接合并
- docker - ssh-copy-id 卡在 docker 上的 CentoOS 7
- django - 内容安全策略阻止数据
- objective-c - CoreBluetooth 命令行 macOS
- python - 指数中可变时间间隔的 Pandas 导数
- java - 如何从 JAR 文件的“lib”子目录加载 DLL?
- html - 子下拉列表不在父级下方居中
- google-maps - Google Maps API 中的东北和西南边界是什么?