2017-03-06 12 views
3

私はアンドロイドスタジオでProgressbarを使って作業しようとしていました。私が望んでいたのは、MainActivityのボタンをクリックすると、「進捗状況」という新しいアクティビティを意図しているということでした。 私の活動はここにある:Android StudioにprogressBarを表示しないのはなぜですか?

MainActivity.java

MainActivity.java

Progress.java

Progress.java

私のアプリが実行されますが、任意のプログレスバーの動きを示していません。プログレスバーを30秒間表示するにはどうすればよいですか?私はその間に何もしていない。 30秒間プログレスバーを見たいだけです。

+2

いくつかのコードを表示してください。 – Remario

+0

私の質問に画像が添付されています.Plsチェック@Caspain Caldion – suptagni

+0

進捗バーのレイアウト – Remario

答えて

1

1000は、forループは小さすぎるが、このコードは、あなたがやりたいこと:

//Set visible progres bar 
findViewById(R.id.progress_bar).setVisibility(View.VISIBLE); 

     //Timer in your case 30 sek 
     int timer = 30*1000; 

     //create handler 
     final Handler handler = new Handler(); 

     //set handler delayed     
     handler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 

     //Hidden progress bar 
     findViewById(R.id.progress_bar).setVisibility(View.INVISIBLE); 

     //your toast 
     Toast.makeText(this,"your msg",Toast.LENGTH_LONG).show(); 

     //start new activity 
     startActivity(your intent) 
      } 
     }, timer); 
    } 
+0

うわー!それは働いています:)時間が上がって、新しい活動への意志の後に私はトーストメッセージを表示することができますどのように私に教えてもらえますか? @Grzegorz – suptagni

+0

編集コードこれはすべてあなたが望む – Grzegorz

+0

ありがとう。それは本当に有用です:) @Grzegorz – suptagni

1

はmPrograssStatusは、非常に短い時間では100に増加しています。カッコ内の

SystemClock.sleep(300); 

値は、そのシステムが待機するミリ秒単位の時間で、あなたのケースでは、30秒を取得するための300です:あなたは、例えばwhileループであなたのコードにこれを追加してみてください、待つ必要があります。また、ライブラリをインポートする必要があります。

import android.os.SystemClock; 
+0

凍ったUIスレッドは悪い解決策です – Grzegorz

+0

お返事ありがとう@MichałTartanus。私はすでに解決策を持っている:) – suptagni

関連する問題