以编程方式模拟 Android 按钮点击

EGH*_*HDK 5 java android

条路我见过

View.performClick();
Run Code Online (Sandbox Code Playgroud)

但它不显示按钮的实际按下情况。这个方法我也尝试过

btn.setPressed(true);
btn.invalidate();
Run Code Online (Sandbox Code Playgroud)

但是,它只显示按钮被按下。我已将范围缩小到这段代码,按下然后松开,但不单击。我错过了什么吗?我怎样才能像用户点击一样完成一次点击(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);
Run Code Online (Sandbox Code Playgroud)

sti*_*ike 3

你的代码没问题。只需 btn.performClick();在后面添加invalidate();

为了获得更好的外观,您可以减少 的时间handler1