android为什么TabActivity与Activity在打开Dialog时崩溃

时间:2011-07-12 11:19:05

标签: android android-context

我看到这个问题有10个答案,我已经全部阅读了 但不能让这个工作。

我将我的活动移动到此TabGroup中,我在一个标签组中有3个活动,并从此处获得帮助:Multiple Android Activities in a TabActivity

打开自定义对话框时出现此错误:

  

07-12 10:07:56.985:ERROR / AndroidRuntime(9532):android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌android.app.LocalActivityManager $ LocalActivityRecord@462d96f0无效;你的活动在运行吗?

我知道这个错误说上下文很糟糕 在ColorPickerView(下面)不起作用的情况下,我正在调试并且可以看到构造函数正在执行它的工作,但是一旦构造函数完成它就崩溃了。

问题是我从其他两个活动中得到了3个类似的错误,一个是CheckBox,另外两个是Spinner 我可以通过适当地更改上下文来轻松修复它。

这个更复杂,View堆栈看起来像这样:

TabGroup  
.......TabHost (public class FileEditMainActivity extends Activity)    
...............ImageView (public class FileEditImageView extends ImageView )      
........................Dialog (public class ColorPickDialog extends Dialog )  
..............................View (private class ColorPickerView extends View  )

无论我如何改变上下文,系统都会告诉我上下文不存在 ColorPickerView总是崩溃..

如果我不使用TabGroup,也必须说这是有效的。 当我将FileEditMainActivit放入TabGroup时,上下文出了问题 任何人都有想做什么?

1 个答案:

答案 0 :(得分:6)

因为所有内容都在ActivityGroup中,所以我喜欢

的getParent()。的getParent()

这可能看起来很残酷,但它有效,而且我的经验水平我认为这是一场胜利:)

修改

getparent().getParent()将是上下文参数,例如:

final ProgressDialog dialog = ProgressDialog.show(this.getParent().getParent(), null, "Prcocessing", true, true);