我有一个PopopWindow用户可以注册和帐户。 如果用户名已存在,我使用setError(string);通知用户和 然后我清除Edittext和reqeustFocus。但是在reqeustFocus();我得到BadTokenException:
Unable to add window -- token android.view.ViewRootImpl$W@41ea39b8 is not valid; is your activity running
我正在使用SherlockFragment,这就是我创建PopupWindow的方式
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.popup_register,null);
pwCreateAccount = new PopupWindow(layout, screenWidth - 75, LayoutParams.WRAP_CONTENT, true);
pwCreateAccount.setOutsideTouchable(true);
pwCreateAccount.setBackgroundDrawable(new BitmapDrawable());
pwCreateAccount.showAtLocation(layout, 17, 0, 0);
我在PopupWindow中有一个微调器有同样的问题,然后我试图打开下拉列表来选择一个项目我得到了同样的错误。但我也使用getActivity()而不是getBaseContext()或getApplicationContext()
答案 0 :(得分:0)
使用Dialog解决
myDialog = new Dialog(getActivity());
myDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
myDialog.setContentView(R.layout.popup_register);
myDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
这样我就可以获得自己的视图,默认背景或标题没有边框