入力された値(ここではtumami変数に1000という数字を代入して入力の代わりにしています。)が経過するごとに画像を表示するプログラムを書いています。
画像は8枚用意しており、ボタンを押すと1枚目から順番に表示され、8枚目が表示されるとループが終わるようにします。
しかし、実行するとなぜか画像は表示されず、8秒後くらいに8枚目の画像だけが表示されてしまいます。エラーは起きておらず、デバッグをして挙動を見ても正常に動いているように見えますが、画像が表示されるのは8枚目だけなので困っています。
教えていただけると嬉しいです。これを調べるといいよという内容でもありがたいです。
Autoという変数がありますが、ここでは関係ないので無視でお願いします。
java
1public class MainActivity extends AppCompatActivity implements Runnable, page1.OnFragmentInteractionListener, page2.OnFragmentInteractionListener, page3.OnFragmentInteractionListener { 2 int tumami; 3public void startOnClick(View v){ 4 //テスト用 5 List<Integer> setCards = Arrays.asList(R.drawable.img_0066,R.drawable.img_0070,R.drawable.img_0055,R.drawable.img_0012,R.drawable.img_0015,R.drawable.img_0036,R.drawable.img_0009,R.drawable.img_0048); 6 String Auto = "on"; 7 tumami = 1000; 8 9 10 //もしAutoならtumami(1秒)ごとに1枚表示 11 if(Auto == "on"){ 12 for(int i=0; i<9; i++ ){ 13 MultiThread mt = new MultiThread(tumami); 14 mt.start(); 15 try { 16 mt.join(); 17 nextCard(setCards.get(i)); 18 } catch (Exception e) { 19 e.printStackTrace(); 20 } 21 22 if(i==8){ 23 System.out.println("fin!"); 24 break; 25 } 26 } 27 } 28 } 29 30 public void nextCard(int card) { 31 ((ImageView) findViewById(R.id.justUseCard)).setImageResource(card); 32 } 33 34}
java
1class MultiThread extends Thread { 2 int tumami; 3 4 public MultiThread(int tumami){ 5 6 } 7 8 public void run() { 9 try { 10 Thread.sleep(tumami); 11 } catch (InterruptedException e) { 12 e.printStackTrace(); 13 } 14 } 15}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/19 05:00
2018/06/19 05:35