Créez un Timer et modifier le layout

admin

by Julien Gustin

September 9, 2018

0

Si vous voulez modifier un élément de votre layout en utilisant un Timer, vous ne pourrez pas modifier les éléments de votre layout. l’erreur suivante apparaîtra : “Only the original thread that created a view hierarchy can touch its views.“.

La solution, c’est de passer par runOnUiThread de votre activité.

Voici un exemple d’un timer qui me permet de réactiver un bouton du layout de mon fragment après 4 secondes.

final java.util.Timer timer = new java.util.Timer();
timer.scheduleAtFixedRate(new java.util.TimerTask() {
    @Override
    public void run() {
        getActivity().runOnUiThread(new java.util.TimerTask() {
            @Override
            public void run() {
                btnPlayToWin.setEnabled(true);
                btnPlayToWin.setClickable(true);
                timer.cancel();
                timer.purge();
            }
        });
    }
}, 3000, 1000);

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

*

*

*