微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

传递上下文总是失败 - 无法添加窗口 - 令牌空无效;您的活动正在运行吗?

如何解决传递上下文总是失败 - 无法添加窗口 - 令牌空无效;您的活动正在运行吗?

我正在开发一个具有 DialogBu​​ilder 类的应用程序,我在其中实现了应用程序的所有对话框,以便能够在其他服务或活动中调用它们;除了在一个活动中我尝试了所有方法来传递上下文之外,它运行得非常好 - 它不起作用;因此,如果您对此有任何提示或帮助,我将非常高兴,谢谢!

对话:

public static void bookingConfirmationDialog(Context mContext) {
        if(mContext != null) {
            final Dialog dialog = new Dialog(GoldbekStorageApp.getInstance(),0);
            dialog.requestwindowFeature(Window.FEATURE_NO_TITLE);
            dialog.setCancelable(true);
            dialog.setContentView(R.layout.new_booking_layout);
            dialog.getwindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
            TextView textView = dialog.findViewById(R.id.messageId);
            textView.setText(GoldbekStorageApp.getInstance().messageId);
            Button okButton = dialog.findViewById(R.id.ok);
            okButton.setonClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.dismiss();
                }
            });
            dialog.show();
        }
    }

对话框的调用

proceedButton.setonClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
                message.setType(type);
                message.setFromId(fromID);
                message.setToId(toID);
                message.setTypeId(typeID);
                message.setTime(time);
                message.setTitle(title);
                message.setReceiptNo(receiptNo);
                message.setNote(note);
                RestClient.putBookingOnPallet(basic,message,context);
                DialogBuilder.bookingConfirmationDialog(context);
       /*         Intent activityChangeIntent = new Intent( NewProductActivity.this,NewProductActivity.class);
                NewProductActivity.this.startActivity(activityChangeIntent);*/

            }
        });

解决方法

我可能遗漏了一些东西,但您可以在 DialogFragment 类中 override onAttach 而不是通过构造函数传递上下文。

    @Override
    public void onAttach(@NonNull Context context) {
        super.onAttach(context);
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。