5 votes

Simuler un clic de bouton Android de manière programmatique

J'ai vu ce route,

View.performClick();

mais ça ne montre pas la pression réelle du bouton. J'ai également essayé ce méthode,

btn.setPressed(true);
btn.invalidate();

mais, ça montre juste le bouton enfoncé. J'ai réduit le problème à ce code, qui appuie sur le bouton, le relâche, mais ne clique pas. Est-ce qu'il me manque quelque chose ? Comment puis-je faire un clic complet comme si l'utilisateur cliquait (monkeyrunner n'est pas une option pour l'instant) ?

btn = (Button) findViewById(R.id.btn_box);
    Handler handler = new Handler();
    Runnable r = new Runnable() {
        public void run() {
            btn.setPressed(true);
            btn.invalidate();
            Handler handler1 = new Handler();
            Runnable r1 = new Runnable() {
                public void run() {
                    btn.setPressed(false);
                    btn.invalidate();

                }
            };
            handler1.postDelayed(r1, 1000);

        }
    };
    handler.postDelayed(r, 1000);

3voto

Nobody Points 30

Votre code est bon. Il suffit d'ajouter btn.performClick(); après le invalidate();

Et pour une meilleure apparence, vous pouvez réduire le temps de handler1 .

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