4

看过条路,

View.performClick();

但它没有显示按钮的实际按下。这个方法我也试过

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

1 回答 1

3

你的代码很好。只需在 btn.performClick();后面添加invalidate();

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

于 2013-03-23T00:08:31.793 回答