我一直在网上搜索这个问题的解决方案,但不幸的是,我似乎找不到答案。我为其中带有 Spinner 的 PopupWindow 创建了一个 XML 文件。在按钮事件侦听器中,我调用以下代码来膨胀 PopupWindow 并将其显示在屏幕上。
LayoutInflater inflater = getLayoutInflater();
settings_layout = inflater.inflate(R.layout.setting_popout, (ViewGroup) findViewById(R.id.setting_popout));
// Creates a popup window of required width and height, and displays
// the popup in the center of the screen.
pw_settings = new PopupWindow(settings_layout, 400, 470, true);
pw_settings.showAtLocation(settings_layout, Gravity.CENTER, 0, 0);
spColors = (Spinner) settings_layout.findViewById(R.id.linecolor);
// Sets the initial values of the color spinner and the listener
ArrayAdapter<CharSequence> adapter_color =
ArrayAdapter.createFromResource(this, R.array.colors_array, android.R.layout.simple_spinner_item);
adapter_color.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spColors.setAdapter(adapter_color);
spColors.setSelection(adapter_color.getPosition(over.color));
单击按钮时,弹出窗口显示正常。但是,当我单击 Spinner 时,我在 LogCat 中收到以下错误。
android.view.WindowManager$BadTokenException: 无法添加窗口——令牌 android.view.ViewRootImpl$W@41402a90 无效;您的活动正在运行吗?...
我不确定我做错了什么。任何帮助将不胜感激!谢谢!