5 votes

Je veux changer la couleur d'un bouton pendant quelques secondes, puis la rétablir.

La couleur des boutons de mon Android est bleue. Je veux changer la couleur du bouton en rouge pendant 5 secondes. Après 5 secondes, je dois changer la couleur du bouton pour qu'il redevienne bleu.

Voici mon code

 new Handler().postDelayed(new Runnable() {

                public void run() {
                    eyesOnchkBtn.setBackgroundColor(Color.RED);
                }
            }, 5000);

            eyesOnchkBtn.setBackgroundColor(Color.BLUE); // It wont change the color button as normal

3voto

Anu Points 1844

J'espère que le code suivant vous aidera

eyesOnchkBtn.setBackgroundColor(Color.RED);
new CountDownTimer(5000, 50) {

        @Override
        public void onTick(long arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onFinish() {
                        eyesOnchkBtn.setBackgroundColor(Color.BLUE);
                    }
    }.start();

3voto

twntee Points 2206

Changez juste un peu votre code,

 eyesOnchkBtn.setOnClickListener( new OnClickListener(){

 @Override
 public void onClick() {
 // set the color red first.
 eyesOnchkBtn.setBackgroundColor(Color.RED);

 // change to original after 5 secs.
 new Handler().postDelayed(new Runnable() {

                public void run() {
                    eyesOnchkBtn.setBackgroundColor(Color.BLUE);
                }
            }, 5000);
 }
});

1voto

pratik Points 2276

Essayez ceci

Timer myTimer;

MyTimerTask myTask = new MyTimerTask();
        myTimer = new Timer();
        myTimer.schedule(myTask, 0, 3000);

class MyTimerTask extends TimerTask {

        public void run() {
            try {
                getActivity().runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        try {
                    //Your color change code here
            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }

//Stop le timer lorsque vous avez terminé votre travail.

@Override
    public void onPause() {
        super.onPause();
        try {
            myTimer.cancel();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    @Override
    public void onStop() {
        super.onStop();
        try {
            myTimer.cancel();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

1voto

MoshErsan Points 5119
button.setBackgroundColor(Color.GREEN);
button.postDelayed(new Runnable() {

  @Override
  public void run() {
    button.setBackgroundColor(Color.BLUE);
  }
}, 5000);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X