Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 用另一个按钮按下模拟一个按钮按下_Android_Kotlin - Fatal编程技术网

Android 用另一个按钮按下模拟一个按钮按下

Android 用另一个按钮按下模拟一个按钮按下,android,kotlin,Android,Kotlin,我现在想有一个按钮,当我按下它时,另一个按钮闪烁,就好像它被同时按下一样,并激活另一个按钮的功能。我目前的代码如下: fun onTwo(view: View) { button1.callOnClick() button1.isPressed = true } 然而,我面临的问题是,它会冻结按钮1,就好像它被按下一样,直到再次按下为止。有人对此有解决方案吗?您可以在其中一个按钮中添加侦听器以检查单击,然后

我现在想有一个按钮,当我按下它时,另一个按钮闪烁,就好像它被同时按下一样,并激活另一个按钮的功能。我目前的代码如下:

fun onTwo(view: View) {
            button1.callOnClick()
            button1.isPressed = true
                    }

然而,我面临的问题是,它会冻结按钮1,就好像它被按下一样,直到再次按下为止。有人对此有解决方案吗?

您可以在其中一个按钮中添加侦听器以检查单击,然后使用该事件触发另一个按钮中的单击事件,如下所示:

val button1=findViewById(R.id.btn1ID)作为按钮
button1.setOnClickListener{
val button2=findViewById(R.id.btn2ID)作为按钮
按钮2.performClick()
}
用各自的id(a)替换
R.id.btn1ID
R.id.btn2ID

参考资料:


您还可以创建一个实用程序函数来使用它,而无需生成如下冗余变量:

@Suppress(“未选中的\u CAST”)
有趣的活动。findButtonById(@IdRes:Int):按钮=
findViewById(res)as按钮
//然后在创建活动方法中:
findButtonById(R.id.btn1ID).setOnClickListener{
findButtonById(R.id.btn2ID).performClick()
}
尝试下面的performClick()方法:

fun onTwo(view: View) 
{
    button1.performClick()
}

最后,我使用协同程序解决了这个问题:

fun onTwo(view: View){
                GlobalScope.async{
                    delay(100)
                    button1.isPressed = false
                    GlobalScope.cancel()
                }
                button1.setPressed(true)
                button1.performClick()

            }

请为这个问题提供一个完整的、最少的示例,以便其他人可以重新创建它。PerformClick()似乎在做与callOnClick相同的事情,而不是更改按下的状态感谢您的输入。不幸的是,我发现performClick()的作用与callOnClick()相同,并且不会更改按下的按钮state@matparrottandroid文档说,它执行与点击相关的所有正常操作:报告可访问性事件、播放声音等。,您的代码可能有问题,你能发布你的代码吗?经过更多的研究,你是正确的,问题是安卓实现点击的速度太快,以至于无法在屏幕上注册。因此,我认为我需要某种形式的延迟。