AlertDialog не отображается при втором вызове - PullRequest
0 голосов
/ 21 января 2019

Я работаю над проектом, в котором мне нужно проверить, есть ли в принтере рулон бумаги перед печатью. вот мой код:

private void ImpressionTicket() {
    new Print(cardNo, mBaseActivity,transEntity);
    while (Print.print_state.equals("true")) ;//true
    if(Print.print_state.equals("Paper Lack")){
        PrintFail( -1005);
    }
    else {
        PrintDialog();
        while (PrintDial.equals("HERE")) ;
        ImpresssionDialog();
        new PrintClient(cardNo, mBaseActivity, transEntity);
        while (PrintClient.print_state_Client) ;
        getActivity().finish();
        Intent intent = new Intent(getActivity(), CashActivity1.class);
        startActivity(intent);
    }
  }

Это код PrintFail ():

private void PrintFail(final int i) {
    getActivity().runOnUiThread(new Runnable() {

        @Override
        public void run() {
            pwdAlertDialogistrsE.setTitle("Papier introuvable");
            TRScheck.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    pwdAlertDialogistrsE.dismiss();
                      ImpressionTicket();

                }
            });
            switch (i) {
                case -1005:
                    pwdAlertDialogistrsE.setMessage("\n"+"\n"+"Insérez papier puis validez "+"\n"+"\n"+"\n"+"\n"+"\n");
                    break;
            }
            pwdAlertDialogistrsE.show();
            getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

            int displayWidth = displayMetrics.widthPixels;
            int displayHeight = displayMetrics.heightPixels;

            // Initialize a new window manager layout parameters
            WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();

            // Copy the alert dialog window attributes to new layout parameter instance
            layoutParams.copyFrom(pwdAlertDialogistrsE.getWindow().getAttributes());
            int dialogWindowWidth = (int) (displayWidth * 0.9f);
            // Set alert dialog height equal to screen height 70%
            int dialogWindowHeight = (int) (displayHeight * 0.8f);

            // Set the width and height for the layout parameters
            // This will bet the width and height of alert dialog
            layoutParams.width = dialogWindowWidth;
            layoutParams.height = dialogWindowHeight;

            // Apply the newly created layout parameters to the alert dialog window
            pwdAlertDialogistrsE.getWindow().setAttributes(layoutParams);

        }
    });
}

код должен показывать диалоговое окно предупреждения, если бумаги нет, так что пользователь вставляет ее. После этого пользователь нажимает кнопку ОК, и билет распечатывается. Теперь pblrm заключается в том, что после добавления статьи и нажатия кнопки «ОК» AlertDialog в остальном состоянии не отображается. У кого-нибудь есть идеи почему.

...