0

I want my program to auto generate random number every 30 sec when I hit the generate button, Question is how to do that in my code?

public class MainActivity extends Activity {

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

        final Random myRandom = new Random();


        Button buttonGenerate = (Button)findViewById(R.id.generateme);
        final TextView textGenerateNumber = (TextView)findViewById(R.id.generatenumber);

        buttonGenerate.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                ArrayList<Object> Arry1 = new ArrayList<Object>();
                for(int i=0;i<1;i++){
                    ArrayList<Integer> Arry = new ArrayList<Integer>();
                    for(int k=0;k<7;k++){
                        Arry.add(myRandom.nextInt(10));
                    }
                    Arry1.add(Arry);
                }
                textGenerateNumber.setText(String.valueOf(Arry1));
            }
        });  
    }
}
tshepang
  • 12,111
  • 21
  • 91
  • 136
jun
  • 35
  • 2
  • 12
  • I think that you are searching for : http://stackoverflow.com/questions/6151566/how-to-wait-a-thread-in-android –  Mar 12 '13 at 08:57
  • can you help me base on my code above for future reference also thanks – jun Mar 13 '13 at 04:31

1 Answers1

0

setup a Timer and provide it your own extension for TimerTask. Activate the Timer when you hit the button and you should be good.

http://enos.itcollege.ee/~jpoial/docs/tutorial/essential/threads/timer.html

http://docs.oracle.com/javase/6/docs/api/java/util/Timer.html

Here is an example based on your code to get you started. Note that it will break down because of activity life cycle:

package com.example.tmp;

import java.util.ArrayList;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;


public class MainActivity extends Activity {
    Timer timeoutTimer;
    final Random myRandom = new Random();
    GenerateTask genTask = new GenerateTask();
    final ArrayList<Object> arry1 = new ArrayList<Object>();

    class GenerateTask extends TimerTask {
        boolean started = false;
        @Override
        public void run() {
            if (started) {
                System.out.println("generating");
                final TextView textGenerateNumber = (TextView)findViewById(R.id.generatenumber);
                arry1.clear();
                for(int i=0;i<1;i++){
                    ArrayList<Integer> Arry = new ArrayList<Integer>();
                    for(int k=0;k<7;k++){
                        Arry.add(myRandom.nextInt(10));
                    }
                    arry1.add(Arry);
                }
                runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        textGenerateNumber.setText(String.valueOf(arry1));
                    }
                });
            }
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);        
        Button buttonGenerate = (Button)findViewById(R.id.generateme);

        buttonGenerate.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v) {
                System.out.println("click");
                if (!genTask.started) {
                    genTask.started=true;
                    timeoutTimer = new Timer();
                    timeoutTimer.scheduleAtFixedRate(genTask, 0, 30000);
                } else {
                    genTask.started=false;
                    timeoutTimer.cancel();
                }
            }
        });  
    }
}
mdt
  • 186
  • 1
  • 6
  • thanks a ton sir! it works like a charm ill study this code you gave me for future reference thanks again! – jun Mar 13 '13 at 10:56