Ricardo Santos
Ricardo Santos

Reputation: 1

How to enable a button after 5 seconds

everyone! I need to make a Button disabled for 5 seconds, and the caption of the button must be "Skip" plus the time the button will stay disabled.

I have made a class CTimer that extends Thread, and defined the run method with run(Button). The run method receives the Button which Caption will be modified and is as follows:

    public void run(Button skip){       
    for ( int i=5; i<0; i--)
    {
        skip.setText("Skip (" + i + ")");
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    skip.setEnabled(true);
}

The problem is that the code does not work, any thouhts, anyone?

Upvotes: 0

Views: 2082

Answers (1)

Khawar
Khawar

Reputation: 5227

I have tried the following code & it works fine for me:

public class Main_TestProject extends Activity 
{
  private Button b;
  private int index = 5;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) 
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    b = (Button) findViewById(R.id.my_button);      
    b.setEnabled(false);
    hHandler.sendEmptyMessage(0);
  }

  private Handler hHandler = new Handler()
  {
    @Override
    public void handleMessage(Message msg)
    {
        if(index > 0)
        {
            try
            {
                b.setText("Skip (" + String.valueOf(index) + ")");
                index--;
                Thread.sleep(1000);
                hHandler.sendEmptyMessage(0);
            } 
            catch (InterruptedException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        else
        {
            b.setEnabled(true);
        }
    }
  };
}

Upvotes: 2

Related Questions