解决ActivityGroup的sub Activity中spinner的WindowManager$BadTokenException的问题
来源:互联网 发布:python视频教程小甲鱼 编辑:程序博客网 时间:2024/05/16 07:28
在ActivityGroup的sub activity中直接使用Spinner会遇到下面的异常信息:
ERROR/AndroidRuntime(964): FATAL EXCEPTION: main
ERROR/AndroidRuntime(964):android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@44f02d20 is not valid; is your activity running?
ERROR/AndroidRuntime(964): at android.view.ViewRoot.setView(ViewRoot.java:505)
ERROR/AndroidRuntime(964): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
ERROR/AndroidRuntime(964): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
ERROR/AndroidRuntime(964): at android.view.Window$LocalWindowManager.addView(Window.java:424)
ERROR/AndroidRuntime(964): at android.app.Dialog.show(Dialog.java:241)
ERROR/AndroidRuntime(964): at android.app.AlertDialog$Builder.show(AlertDialog.java:802)
ERROR/AndroidRuntime(964): at android.widget.Spinner.performClick(Spinner.java:257)
ERROR/AndroidRuntime(964): at android.view.View$PerformClick.run(View.java:8816)
ERROR/AndroidRuntime(964): at android.os.Handler.handleCallback(Handler.java:587)
ERROR/AndroidRuntime(964): at android.os.Handler.dispatchMessage(Handler.java:92
…………………………………………
·第一,你需要在你的sub activity的oncreate方法中获得content view,而不是直接调用系统提供的setContentView(question_activity);
我的程序中代码如下:
View contentView = LayoutInflater.from(getParent().getParent()).inflate(R.layout.question_activity, null);
setContentView(contentView);
spinner = (Spinner) contentView.findViewById(R.id.spinner_a);
System.out.println(" 当前选中的spinner = "+spinner.getSelectedItem().toString());
说明:
R.layout.question_activity:是你当前Activity的布局文件。
·第二,要注意:
LayoutInflater.from(getParent().getParent())中from()的参数,是你要显示Spinner的Dialog的页面。
·我认为最主要的原因是:
Spinner的选项是以Dialog的形式显示的(上面的异常信息:at android.app.Dialog.showDialog.java)),是需要显示在总体页面之上的。
比如:
ActivityGroup1里面一个ActivityGroup2,而ActivityGroup2中有一个Activity,在这个Activity里有我们的Spinner,那么点击Spinner弹出的Dialog是显示在ActivityGroup1之上的,而不是显示在ActivityGroup2或者Activity之上的。
- 解决ActivityGroup的sub Activity中spinner的WindowManager$BadTokenException的问题
- 解决ActivityGroup的sub Activity中使用spinner出现的WindowManager$BadTokenException问题
- 解决ActivityGroup的sub Activity中使用spinner出现的WindowManager$BadTokenException问题
- 解决常见的android.view.WindowManager$BadTokenException
- android中WindowManager BadTokenException的处理小结
- 解决在BroadcastReceiver(广播接受者)中不能添加AlertDialog(对话框)的问题(android.view.WindowManager$BadTokenException)
- android 实现全局对话框中context的问题 .WindowManager$BadTokenException问题解决
- Android :我的奇怪BUG:WindowManager$BadTokenException
- Android :我的奇怪BUG:WindowManager$BadTokenException
- ActivityGroup解决TabHost中多个Activity的跳转
- Android :子Activity 使用dialog 引发的BUG--android.view.WindowManager$BadTokenException: Unable to add wind
- 史上最坑爹报错,没有代码行提示的崩溃:WindowManager$BadTokenException,is your activity running?
- ActivityGroup---activity的管理器
- ActivityGroup下子Activity的布局问题
- view,activity,window已经activitygroup,viewgroup,windowManager,viewmanager,activitymanager的关系
- Activity中获取windowmanager的方法
- android开发中遇到的android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.
- ActivityGroup中的子Activity创建Dialog:android.view.WindowManager$BadTokenException: U
- Java线程:创建与启动
- 异步加载图片
- PHP String 函数
- 浅谈SQLite——浅析Lemon
- mac下maven安装与使用
- 解决ActivityGroup的sub Activity中spinner的WindowManager$BadTokenException的问题
- 多核时代的移动开发(一)-函数式编程思想到来
- 基于Lex 和 Yacc 的 C 语言编译器
- arm平台linux异常处理流程
- iOS下微信语音播放之切换听筒和扬声器的方法解决方案
- Android界面设计基础:控件焦点4个步骤
- 1070. Mooncake (25)
- 20050620 GNU Bison 中文手册翻译完成
- GNU Flex与Bison结合使用