ブートストラッププログレスバーがアンドロイドに増加していません

唯一のスマートボーイ:

私は私が20秒間ゆっくりと私のプログレスバーをインクリメントするために使用したいと思い、次のコードを持っています

    public void progressAnimator(){
    final long period = 1000;
    timer=new Timer();
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            //this repeats every 100 ms
            if (counter<100){
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        loaderLabel.setText(String.valueOf(counter)+"%");
                    }
                });
                mProgress.setProgress(counter);
                counter++;
            }
            else{
                //closing the timer
                timer.cancel();
                Intent intent =new Intent(SplashActivity.this,MainActivity.class);
                startActivity(intent);
                // close this activity
                finish();
            }
        }
    }, period);
}

私の問題は、これが唯一のloaderLabelに0%を示してしまい、その後、何もせずにフリーズするということです。私は前にこのコードを試してみましたが、それは唯一のloaderLabelに100%を点滅し、プログレスバーを埋めた後、次の画面へ進みます。

     public void progressAnimator(){
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            for( counter =1; counter<=100; counter ++) {
                System.out.println(counter);
                mProgress.setProgress(counter);
                loaderLabel.setText(getResources().getString(R.string.loading) + " " + counter + " " + getResources().getString(R.string.percentSymbol));
                if (counter == 100) {
                    Toast.makeText(SplashActivity.this, R.string.welcome, Toast.LENGTH_LONG).show();
                    Intent loadMain = new Intent(SplashActivity.this, MainActivity.class);
                    startActivity(loadMain);
                    finish();
                }
            }
        }
    }, 100);

}

私は20,000の遅延を増やした場合、それはゼロでフリーズ、私が間違って何をしているのだろうか?

Otema:

過酷なクマーによって与えられた回答に基づいて、私はあなたが次のことを行うことをお勧め

         public void progressAnimator(){
            new CountDownTimer(total_duration, duration_of_one_step) {
                public void onTick(long millisUntilFinished) {
                    // code to be executed on every iteration
                    loaderLabel.setText(MessageFormat.format("{0} {1} {2}", getResources().getString(R.string.loading), ((total_duration - millisUntilFinished) / 1000) * 5, getResources().getString(R.string.percentSymbol)));
                    mProgress.setProgress((int) ((total_duration - millisUntilFinished) / 1000)*5);
                }
                public void onFinish() {
                    //code to be executed on completing the timer
                    Toast.makeText(SplashActivity.this, R.string.welcome, Toast.LENGTH_LONG).show();
                    Intent loadMain = new Intent(SplashActivity.this, MainActivity.class);
                    startActivity(loadMain);
                    finish();
                }
            }.start();
        }

それは私が乗算5によって100に進捗状況を取得するには、それ以外の場合は20で停止するという問題ノートを解決する必要があります

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=373917&siteId=1