java – 以编程方式单击Android按钮单击[复制]

参见英文答案 >
How to simulate a touch event in Android?                                    7个

我见过
this路线,

View.performClick();

但它没有显示实际按下按钮.我也尝试过this方法,

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

但是,它只显示按下按钮.我把它缩小到这个代码,它按下并发布,但没有点击.我错过了什么吗?我怎样才能完全点击,就像用户点击一样(monkeyrunner现在不是一个选项)

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);

最佳答案 你的代码很好.只需添加btn.performClick();在invalidate()之后;

为了更好看,您可以减少handler1的时间.

点赞