Как я могу показать AlertDialog внутри индикатора выполнения? - PullRequest
1 голос
/ 24 октября 2019

Я не знаю, как показать AlertDialog, когда индикатор выполнения, например, достигает 22%.

Мне бы хотелось, чтобы индикатор выполнения достиг 22%, чтобыОстановитесь и покажите окно Al e rtDialog, показывающее некоторый текст и кнопки по умолчанию, например, OK и Отмена. Когда вы нажимаете OK, индикатор выполнения возобновляется и продолжает загрузку. И так завершайте его, пока не достигнете 100% индикатора выполнения.

Проблема в том, что я не знаю, как остановить индикатор выполнения, например, на 22%, и показать AlertDialog. Так что это мое сомнение. Как бы правильно сделать это.

Это то, что я сделал до сих пор, и спасибо заранее коллегам;)

MainActivity :

public class MainActivity extends AppCompatActivity {

private ProgressBar progressBar4;
private int progressStatus4 = 0;
private Handler handler = new Handler();


    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                carga();
            }
        });
    }

    private void carga(){
        final Dialog dialogCorrect = new Dialog(MainActivity.this);
        dialogCorrect.requestWindowFeature(Window.FEATURE_NO_TITLE);
        if (dialogCorrect.getWindow() != null) {
            ColorDrawable colorDrawable = new ColorDrawable(Color.TRANSPARENT);
            dialogCorrect.getWindow().setBackgroundDrawable(colorDrawable);
        }
        dialogCorrect.setContentView(R.layout.dialog);
        dialogCorrect.setCancelable(false);
        dialogCorrect.show();

        final TextView tv44 = dialogCorrect.findViewById(R.id.tv44);
        progressBar4 = dialogCorrect.findViewById(R.id.pb44);
        final TextView txt = dialogCorrect.findViewById(R.id.txt);
        txt.setText("Connect");

        if (progressStatus4 == 100) {
            progressStatus4 = 0; //Reset Values
        }

        new Thread(new Runnable() {
            @Override
            public void run() {
                while (progressStatus4 < 100) {

                    progressStatus4 += 1;

                    try {
                         Thread.sleep(200);
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {

                                if(progressBar4.getProgress() >= 20 && progressBar4.getProgress() <= 41){
                                    txt.setText("Update"); 

                                }else if(progressBar4.getProgress() >= 41 && progressBar4.getProgress() <= 71){
                                    txt.setText("GET");

                                }else if(progressBar4.getProgress() >= 71 && progressBar4.getProgress() <= 99){
                                    txt.setText("WHAIT");

                                }else if(progressBar4.getProgress() >= 99 && progressBar4.getProgress() <= 100){
                                    dialogCorrect.dismiss(); //Close PopUp


                                }
                            }
                        });
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }


                    // Update the progress bar
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            progressBar4.setProgress(progressStatus4);
                            progressBar4.setSecondaryProgress(progressStatus4 + 15);
                            // Show the progress on TextView
                            tv44.setText(progressStatus4 + "%");
                        }
                    });


                }
            }
        }).start(); // Start the operation
    }
}
...