我正在使用地图片段来显示用户在地图上的当前位置..以及顶部栏中的微调器。请参阅下图:
此处所有视图都在标签活动中。现在每当我点击微调器进行扩展时,它都会崩溃应用并将错误显示为:
android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@40643d88 is not valid; is your activity running?
请参阅以下代码,以便使用项目填充微调器:
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getParent(),
android.R.layout.simple_spinner_item, cat);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_cat.setAdapter(dataAdapter);
请建议..请注意,这些视图位于标签
中答案 0 :(得分:0)
可能是上下文尝试传递getActivity()的问题 而不是getParent()
适配器构造函数中的
答案 1 :(得分:0)
我在向视图添加片段(不是Mapfragment
,只是自定义片段)时遇到了同样的问题,而我的答案是传入getApplicationContext()
,但我不得不在实例化片段之后通过单独的方法完成它,因为它需要使用Bundle。
使用上面传递的上下文扩充视图时,还需要以下内容:
View v = inflater.from(context).inflate(R.layout.layout_name, ViewGroup container, T/F);
而不仅仅是
View v = inflater.inflate(R.layout.layout_name, ViewGroup container, T/F);
希望这有帮助。