java - 以编程方式模拟Android按钮单击

标签 java android

<分区>

我看过 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);

最佳答案

您的代码没问题。只需在 invalidate();

之后添加 btn.performClick();

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

关于java - 以编程方式模拟Android按钮单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15579976/

相关文章:

java - LinkedIdentityHashSet

android - 使用“设置”菜单过早调用 OnActivityResult

Android:在任务 Activity 上覆盖窗口

android - 创建自定义复合按钮栏

java - 如何在具有空布局的 JPanel 中添加 JTable?

java - 在循环中创建新对象的效率

java - 使用哪些集合?

java - 将 Material 日期选择器值添加到 TextView

android - PWA 已经支持 GPS 了吗?

java - 格式化 System.out.print Java 时格式化小数位