我实现了一个完全像这样的TabActivity -
http://blog.henriklarsentoft.com/2010/07/android-tabactivity-nested-activities/
现在的问题是,我在一项活动中有一些Spinner。当我单击以展开微调器时 - 发生以下异常 -
android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@43b957c0 is not valid; is your activity running?
有人有解决方案吗?
答案 0 :(得分:4)
错误可能是由于适配器的上下文,请尝试将getParent()作为适配器的上下文而不是此。
this链接可以帮助您。
答案 1 :(得分:4)
问题在于使用“正常”布局膨胀,用于膨胀的上下文是“this”,它是嵌套的Activity。不幸的是,嵌套在选项卡(ActivityGroup)中的Activity不能用于显示对话框(我不确定为什么会这样,但它会产生BadTokenException)。我发现最可口的解决方案是不使用setContentView(int id),而是使用getParent()作为Context进行显式膨胀。像这样:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View contentView = LayoutInflater.from(getParent()).inflate(R.layout.my_layout, null);
setContentView(contentView);
}