gpt4 book ai didi

java - 我如何在同时单击两个按钮时执行某些操作

转载 作者:行者123 更新时间:2023-12-01 13:53:41 25 4
gpt4 key购买 nike

public void onClick(View v)
{
if (v.getId()== R.id.but1 && v.getId()== R.id.but2)
{
Intent intent=new Intent(First.this,Second.class);
startActivity(intent);

}
}

最佳答案

没有这样的事件可以关联到两个控件。事件处理程序仅与一个控件关联,这与将相同的监听器分配给两个按钮不同。监听器将分别接收来自每个按钮的调用。

此外,监听器永远不会同时触发,因为两者都在同一线程(UI 线程)中运行。在某些时刻捕获两个控件的单击事件是不可能的。将触发一个监听器,然后触发另一个监听器。即使我们假设用户在完美世界中设法在同一毫秒左右将它们一起单击。无论如何,谁能决定当他们在同一毫秒被点击时,他们被认为被点击聚集!为什么不是相同的纳秒。为什么不在同一时间:)

好了,关于点击事件的解释就足够了。

我们需要的是触摸事件,可以按如下方式播放(代码中也会解释触摸事件是如何工作的):

Activity 类成员:

public boolean b1Down = false, b2Down = false;

onCreate方法代码:

        Button b1 = (Button)findViewById(R.id.button1);
Button b2 = (Button)findViewById(R.id.button2);

b1.setOnTouchListener(new View.OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
boolean consume = false;
if (event.getAction() == MotionEvent.ACTION_UP)
{
b1Down = false;
}

if (event.getAction() == MotionEvent.ACTION_DOWN)
{
b1Down = true;

if (b2Down)
{
// both are clicked now //
Toast.makeText(MainActivity.this, "Both are clicked now!", Toast.LENGTH_SHORT).show();
}

consume = true;
}

return consume;
}
});

b2.setOnTouchListener(new View.OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
boolean consume = false;
if (event.getAction() == MotionEvent.ACTION_UP)
{
b2Down = false;
}

if (event.getAction() == MotionEvent.ACTION_DOWN)
{
b2Down = true;

if (b1Down)
{
// both are clicked now //
Toast.makeText(MainActivity.this, "Both are clicked now!", Toast.LENGTH_SHORT).show();
}

consume = true;
}

return consume;
}
});

关于java - 我如何在同时单击两个按钮时执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19763713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com