Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-无法添加窗口_Android - Fatal编程技术网

Android-无法添加窗口

Android-无法添加窗口,android,Android,我正在使用验证我应用程序中的所有表单 除了当用户单击TextView时具有PopupWindow的表单外,它还适用于其他所有表单 当我点击PopupWindow的按钮来验证其中的表单时,它什么也不做。但在编辑文本中输入任何内容后,它会显示 android.view.WindowManager$BadTokenException:无法添加窗口--标记android.view.ViewRootImpl$W@15f1d142无效;您的活动正在运行吗? 以下是我的弹出窗口代码: View.OnClick

我正在使用验证我应用程序中的所有表单

除了当用户单击
TextView
时具有
PopupWindow
的表单外,它还适用于其他所有表单

当我点击
PopupWindow
的按钮来验证其中的表单时,它什么也不做。但在
编辑文本
中输入任何内容后,它会显示
android.view.WindowManager$BadTokenException:无法添加窗口--标记android.view.ViewRootImpl$W@15f1d142无效;您的活动正在运行吗?

以下是我的弹出窗口代码:

View.OnClickListener phoneReinputHandler = new View.OnClickListener() {

        public void onClick(View arg0) {
            /*Intent intent = new Intent(SignupStepTwoActivity.this, PopupHandphone.class);
            backDim = (RelativeLayout) findViewById(R.id.bac_dim_layout);
            //backDim.setVisibility(View.VISIBLE);
            startActivity(intent);*/

            mainLayout = (RelativeLayout)findViewById(R.id.activity_signup_step_two_mainLayout);
            backDim = (RelativeLayout)findViewById(R.id.bac_dim_layout);

            backDim.setVisibility(View.VISIBLE);

            int width = displayMetrics.widthPixels;
            int height = displayMetrics.heightPixels;
            inflater = (LayoutInflater)getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            //View popupLayoutInflater = inflater.inflate(R.layout.popup_handphone, mainLayout);

            PopupWindow pw = new PopupWindow(
                    inflater.inflate(R.layout.popup_handphone, null, false),
                    (int)(width * .8),
                    (int)(height*.35),
                    true);
            //pw.setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
            pw.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            pw.setOutsideTouchable(true);

            RelativeLayout popupFunctionalitiesWrapper = (RelativeLayout)pw.getContentView().findViewById(R.id.popup_handphone_functionalities);
            //popupFunctionalitiesWrapper.setGravity(Gravity.CENTER);
            int popupFunctionalitiesWrapperWidth = layoutResize.width(70);
            RelativeLayout.LayoutParams popupFunctionalitiesWrapperParams = (RelativeLayout.LayoutParams)popupFunctionalitiesWrapper.getLayoutParams();
            popupFunctionalitiesWrapperParams.width = popupFunctionalitiesWrapperWidth;
            popupFunctionalitiesWrapperParams.addRule(Gravity.CENTER);
            popupFunctionalitiesWrapper.setLayoutParams(popupFunctionalitiesWrapperParams);

            userPhonePopup = (EditText)pw.getContentView().findViewById((R.id.popup_handphone_phoneNumber));
            mAwesomeValidation.addValidation(userPhonePopup, Patterns.PHONE, "Phone number must not be empty");
            userPhoneCfmPopup = (EditText)pw.getContentView().findViewById((R.id.popup_handphone_phoneNumberConfirm));

            Button buttonPhoneCodeResend = (Button)pw.getContentView().findViewById(R.id.popup_handphone_phoneNumberButton);
            buttonPhoneCodeResend.setOnClickListener(new View.OnClickListener() {

                AwesomeValidation resendPhoneValidation = new AwesomeValidation(ValidationStyle.COLORATION);

                @Override
                public void onClick(View v) {
                    Context context = v.getContext();

                    if(!((Activity) context).isFinishing())
                    {
                        if (!userPhonePopup.getText().toString().equals(userPhoneCfmPopup.getText().toString())) {
                            resendPhoneValidation.addValidation(userPhoneCfmPopup, "/^" + userPhonePopup.getText().toString() + "$/", "Nomor handphone harus sama");
                        }
                        resendPhoneValidation.validate();
                    }

                }
            });

            pw.showAtLocation(mainLayout, Gravity.CENTER, 0, 0);
            pw.setOnDismissListener(new PopupWindow.OnDismissListener() {
                @Override
                public void onDismiss() {
                    backDim.setVisibility(View.GONE);
                }
            });


        }
    };

Context
有问题?

是的Context有问题你调用了setcontentView方法吗?是的,我在
onCreate
中调用了它,就像往常一样
setcontentView(R.layout.activity\u signup)onCreate
之外,它是一种处理
TextView
单击的方法