Код диалога оповещения не выполняется в операторе if else android - PullRequest
0 голосов
/ 17 мая 2019

У меня есть кнопка, где, если пользователь нажимает кнопку, он отправит смс-сообщение на выбранный номер телефона, который работает нормально. Проблема в том, что когда пользователь не выбрал номер телефона, приложение не выполняет мой код диалогового окна оповещения, где оно отображает окно с сообщением «Модем не выбран», и просто переходит к коду в операторе else, где оно пытается отправить сообщение на номер, который не существует.

btn_start.setOnClickListener(new View.OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        // Build an Alert Dialog
        AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());

        // Set a title for alert dialog
        builder.setTitle("Start Engine?");

        // Ask the final question
        builder.setMessage("Are you sure want to start the Engine?");

        // Set the alert dialog yes button click listener
        builder.setPositiveButton("Yes", new DialogInterface.OnClickListener()
        {
            @Override
            public void onClick(DialogInterface dialog, int which)
            {
                if(SelectedPhNo == null)
                {
                    // This code below is not being executed 
                    AlertDialog alertDialog = new AlertDialog.Builder(getActivity()).create();
                    alertDialog.setTitle("Modem Error");
                    alertDialog.setMessage("No Modem Selected");
                    alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
                            new DialogInterface.OnClickListener()
                            {
                                public void onClick(DialogInterface dialog, int which)
                                {
                                    dialog.dismiss();
                                }
                            });
                    alertDialog.show();
                }
                else
                {
                    // Start Engine
                    Intent intent = new Intent(getContext(), CommandsFragment.class);
                    PendingIntent pi = PendingIntent.getActivity(getContext(), 0, intent, 0);

                    SmsManager sms = SmsManager.getDefault();
                    ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.SEND_SMS}, 1);
                    sms.sendTextMessage(SelectedPhNo, null, start, pi, null);

                    Toast.makeText(getContext(), "Start Engine Command Sent Successfully", Toast.LENGTH_LONG).show();

                    inboxArrayAdapter.insert("Command: " + start + "\n" + strDate, 0);

                }
            }
        });

        // Set the alert dialog no button click listener
        builder.setNegativeButton("No", new DialogInterface.OnClickListener()
        {
            @Override
            public void onClick(DialogInterface dialog, int which)
            {
                // Do something when No button clicked
                Toast.makeText(getContext(), "Command Aborted",Toast.LENGTH_SHORT).show();
            }
        });

        AlertDialog dialog = builder.create();

        // Display the alert dialog on interface
        dialog.show();
    }
});
...