解决ActivityGroup的sub Activity中使用spinner出现的WindowManager$BadTokenException问题
2012-07-11 10:29
302 查看
在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)
.......
程序背景:使用TabHost,需要在子界面中添加Spinner按钮。
问题:Spinner按钮不能点击,点击出现unable to add window...is your activity running?的错误。
探索:
由于点击Spinner之后,会弹出一个dropdown item的选项卡,我认为unable to add window应该是这个选项卡没有可以添加上去的activity。从错误的最后一句也能看出程序认为它需要的那个activity并没有在运行。那Spinner究竟需要哪个activity?哪个activity是当前在运行的?
思前想后,没有想明白。在网上找了些资料,有一个博客上是这么说 AlertDialog.Builder(xxx.this) => AlertDialog.Builder(this.getParent()) 。我按照这个来试了一下,不加this.getParent()会出现上面的错误,加了就没问题。由此可见当前activity应该是tabhost,而不是每个tab对应的activity。
于是把代码改成下面这样子,注意红色部分:
View views = LayoutInflater.from(getParent()).inflate(R.layout.shiji_orderplace_view_0,
null);
Spinner simple_input_5 = (Spinner) views.findViewById(R.id.simple_input_5);
String[] items= {"非连续", "连续"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item ,items);
adapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item);
simple_input_5.setAdapter(adapter);
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)
.......
程序背景:使用TabHost,需要在子界面中添加Spinner按钮。
问题:Spinner按钮不能点击,点击出现unable to add window...is your activity running?的错误。
探索:
由于点击Spinner之后,会弹出一个dropdown item的选项卡,我认为unable to add window应该是这个选项卡没有可以添加上去的activity。从错误的最后一句也能看出程序认为它需要的那个activity并没有在运行。那Spinner究竟需要哪个activity?哪个activity是当前在运行的?
思前想后,没有想明白。在网上找了些资料,有一个博客上是这么说 AlertDialog.Builder(xxx.this) => AlertDialog.Builder(this.getParent()) 。我按照这个来试了一下,不加this.getParent()会出现上面的错误,加了就没问题。由此可见当前activity应该是tabhost,而不是每个tab对应的activity。
于是把代码改成下面这样子,注意红色部分:
View views = LayoutInflater.from(getParent()).inflate(R.layout.shiji_orderplace_view_0,
null);
Spinner simple_input_5 = (Spinner) views.findViewById(R.id.simple_input_5);
String[] items= {"非连续", "连续"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item ,items);
adapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item);
simple_input_5.setAdapter(adapter);
相关文章推荐
- 解决ActivityGroup的sub Activity中使用spinner出现的WindowManager$BadTokenException问题
- 解决ActivityGroup的sub Activity中spinner的WindowManager$BadTokenException的问题
- 解决ActivityGroup的sub Activity中spinner的WindowManager$BadTokenException的问题
- pupupwindow中使用spinner出现BadTokenException: Unable to add window 异常问题
- ProgressDialog使用时BadTokenException: Unable to add window问题的解决
- android 实现全局对话框中context的问题 .WindowManager$BadTokenException问题解决
- 解决在BroadcastReceiver(广播接受者)中不能添加AlertDialog(对话框)的问题(android.view.WindowManager$BadTokenException)
- 解决android.view.WindowManager$BadTokenException: Unable to add window -- token .
- Android异常解决之WindowManager.BadTokenException
- Android :子Activity 使用dialog 引发的BUG--android.view.WindowManager$BadTokenException: Unable to add wind
- Andoid:popwindow里嵌入webview使用报错解决方案:d.view.WindowManager$BadTokenException: Unable to add window -- t
- android.view.WindowManager$BadTokenException: ... is your activity running? 异常问题
- android.view.WindowManager$BadTokenException崩溃分类与解决。
- android spinner点击android.view.WindowManager$BadTokenException: Unable to add window token is not va
- 【已解决】android.view.WindowManager$BadTokenException: Unable to add window
- 关于django1.7.7使用ajax后出现“CSRF token missing or incorrect”问题的解决办法
- 关于django1.7.7使用ajax后出现“CSRF token missing or incorrect”问题的解决办法
- 解决android.view.WindowManager$BadTokenException: Unable to add windo
- android spinner点击android.view.WindowManager$BadTokenException: Unable to add window token is not va
- popwindow不能显示出现WindowManager$BadTokenException