PopupWindow BadTokenException Edittext requestFocus

时间:2013-09-13 13:21:58

标签: android android-fragments popupwindow

我有一个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()

1 个答案:

答案 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));

这样我就可以获得自己的视图,默认背景或标题没有边框