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);
}
}
问问题
128 次
1 回答
1
没有这样的事件可以关联到两个控件。事件处理程序仅与一个控件相关联,这与将相同的侦听器分配给两个按钮不同。listener 将分别收到来自每个按钮的呼叫。
此外,侦听器永远不会一起触发,因为它们都在同一个线程(UI 线程)中运行。在某些时候不可能捕捉到两个控件的点击事件。将触发一个侦听器,然后触发另一个侦听器。即使我们假设用户在完美的世界中设法在相同的毫秒左右同时点击它们。任何可以决定当他们在同一毫秒被点击时他们被认为被点击收集的方式!为什么不一样纳秒。为什么不是同一个小时:)
好的,解释一下点击事件就足够了。
我们需要的是触摸事件,它可以按如下方式播放(代码还将解释触摸事件的工作原理):
活动班级成员:
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;
}
});
于 2013-11-04T08:20:13.617 回答