警报对话框问题

问题描述

我正在显示一个“警报”对话框,该对话框运行良好,但是我在Internet上看到他们大多数使用方法底部dialog.show();。矿山几乎在顶部,如果我将其移至底部,它确实会崩溃,并且说: textview为null等,但如果dialog.show();位于顶部,则可以正常工作。

我的问题是;我可以这样离开吗?还是以后会成为问题?您可以在下面看到“我的警报”对话框方法

public void startSendMessageDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(UserActivity.this);

        LayoutInflater inflater = getLayoutInflater();
        builder.setView(inflater.inflate(R.layout.send_message_dialog,null));
        builder.setCancelable(true);
        dialogSendMessage = builder.create();
        Window window = dialogSendMessage.getwindow();
        assert window != null;
        window.setGravity(Gravity.CENTER);
        window.getAttributes().windowAnimations = R.style.DialogAnimation;
        sendMessageDialogActive = true;
        **dialogSendMessage.show();**
        btn_send_message_dialog = dialogSendMessage.findViewById(R.id.btn_send_message_dialog);
        MaterialButton btn_send_message_dialog_close = dialogSendMessage.findViewById(R.id.btn_send_message_dialog_close);
        message_desc_tv = dialogSendMessage.findViewById(R.id.message_desc_tv);
        message_succes_lay = dialogSendMessage.findViewById(R.id.message_succes_lay);
        message_send_lay = dialogSendMessage.findViewById(R.id.message_send_lay);
        MaterialButton btn_send_message_get_points = dialogSendMessage.findViewById(R.id.btn_send_message_get_points);
        message_no_point_lay = dialogSendMessage.findViewById(R.id.message_no_point_lay);
        tv_message_title = dialogSendMessage.findViewById(R.id.tv_message_title);
        int prefPoints = Integer.parseInt(SharedPrefManager.getMyPoints());
        boolean premium = SharedPrefManager.getMyPremium();

        if (!premium && prefPoints < 1) {
            tv_message_title.setText("Oh No!");
            message_send_lay.setVisibility(View.GONE);
            message_succes_lay.setVisibility(View.GONE);
            message_no_point_lay.setVisibility(View.VISIBLE);
            dialogSendMessage.getwindow().setBackgroundDrawableResource(android.R.color.transparent);

            btn_send_message_get_points.setonClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    closeSendMessageDialog();
                    Intent intentStore = new Intent(UserActivity.this,PointsActivity.class);
                    startActivity(intentStore);
                    overridePendingTransition(R.anim.slide_in_right,R.anim.slide_out_left);
                    finish();
                }
            });

            dialogSendMessage.setondismissListener(dialog -> sendMessageDialogActive = false);
            return;
        }


        tv_message_title.setText("Message " + getIntent().getExtras().getString("fname_name"));
        message_desc_tv.requestFocus();
        message_desc_tv.setFilters(new InputFilter[]{new MaxLinesInputFilter(4)});



        btn_send_message_dialog_close.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                closeSendMessageDialog();
            }
        });

        InputMethodManager imm = (InputMethodManager)
                getSystemService(Context.INPUT_METHOD_SERVICE);
        if(imm != null){
            imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT,0);
        }

        dialogSendMessage.setondismissListener(dialog -> sendMessageDialogActive = false);

        dialogSendMessage.getwindow().setSoftInputMode(WindowManager.LayoutParams.soFT_INPUT_ADJUST_RESIZE);
        dialogSendMessage.getwindow().setBackgroundDrawableResource(android.R.color.transparent);
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...