0

ユーザーが登録してアカウントを作成できる 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() は使用しませんでした

4

1 に答える 1

0

ダイアログを使用して解決

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

このようにして、デフォルトの背景やタイトルからの境界線なしで、独自のビューを取得します

于 2013-09-14T18:52:11.597 に答える