Advertisement
Ankhwatcher

Threaded Rows

Jun 19th, 2012
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.24 KB | None | 0 0
  1. package ie.appz.fizzbuzz;
  2.  
  3. import android.app.Activity;
  4. import android.media.MediaPlayer;
  5. import android.os.Bundle;
  6. import android.view.ViewGroup.LayoutParams;
  7. import android.widget.TableLayout;
  8. import android.widget.TableRow;
  9. import android.widget.TextView;
  10.  
  11. public class FizzBuzzActivity extends Activity {
  12.     private MediaPlayer fizzMP, buzzMP;
  13.     private TableLayout displayTable;
  14.     private TableRow newRow;
  15.  
  16.     @Override
  17.     public void onCreate(Bundle savedInstanceState) {
  18.         super.onCreate(savedInstanceState);
  19.         setContentView(R.layout.main);
  20.         displayTable = (TableLayout) findViewById(R.id.table);
  21.         fizzMP = MediaPlayer.create(FizzBuzzActivity.this, R.raw.fizz);
  22.         buzzMP = MediaPlayer.create(FizzBuzzActivity.this, R.raw.buzz);
  23.         new Thread(mUpdate);
  24.     }
  25.  
  26.     private Runnable mUpdate = new Runnable() {
  27.         public void run() {
  28.             String srowText;
  29.             for (int i = 1; i < 101; i++) {
  30.                 srowText = "";
  31.                  newRow = new TableRow(FizzBuzzActivity.this);
  32.                 TextView rowNumb = new TextView(FizzBuzzActivity.this);
  33.                 TextView rowText = new TextView(FizzBuzzActivity.this);
  34.                 rowNumb.setText(i + "|");
  35.  
  36.                 srowText = "";
  37.                 if (i % 3 == 0) {
  38.                     fizzMP.start();
  39.                     srowText += "Fizz";
  40.                 }
  41.  
  42.                 if (i % 5 == 0) {
  43.                     srowText += "Buzz";
  44.                     new Thread(new Runnable() {
  45.                         @Override
  46.                         public void run() {
  47.                             try {
  48.                                 Thread.sleep(250);
  49.                             } catch (InterruptedException e) {
  50.                                 e.printStackTrace();
  51.                             }
  52.                             buzzMP.start();
  53.  
  54.                         }
  55.                     }).start();
  56.                 }
  57.                 rowText.setText(srowText);
  58.                 newRow.addView(rowNumb, 0);
  59.                 newRow.addView(rowText, 1);
  60.                 runOnUiThread(new Runnable() {
  61.                     @Override
  62.                     public void run() {
  63.                         displayTable.addView(newRow,
  64.                                 new TableLayout.LayoutParams(
  65.                                         LayoutParams.FILL_PARENT,
  66.                                         LayoutParams.WRAP_CONTENT));
  67.                     }
  68.                 });
  69.                 try {
  70.                     Thread.sleep(1000);
  71.                 } catch (InterruptedException e) {
  72.                     e.printStackTrace();
  73.                 }
  74.  
  75.             }
  76.             try {
  77.                 Thread.sleep(10000);
  78.             } catch (InterruptedException e) {
  79.                 e.printStackTrace();
  80.             }
  81.             buzzMP.start();
  82.             fizzMP.start();
  83.             complete(buzzMP, fizzMP);
  84.         }
  85.  
  86.         void complete(MediaPlayer MP1, MediaPlayer MP2) {
  87.             MP1.release();
  88.             MP2.release();
  89.         }
  90.     };
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement