Android按钮onclick多点触控

时间:2013-03-04 08:30:12

标签: android onclick multi-touch

我有2个按钮,当第一个按下现在和v.v时,我需要从第二个按钮读取onClick事件。就像键盘一样。怎么做?

  • 修改

不,不!我不需要检查第一个按钮是否被点击。当第一个或第二个按钮处于ACTION_DOWN状态时我需要听另一个onClick事件如果我按下第一个按钮,我不能按第二个,但我有多点触控。

4 个答案:

答案 0 :(得分:1)

可能是您可以尝试以下代码:

在类中声明一个布尔变量。

private boolean button1IsPressed = false;

为按钮1编写以下代码:

button1.setOnTouchListener(new OnTouchListener() {
     @Override
     public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_DOWN) {
           button1IsPressed=true;
        } else if (event.getAction() == MotionEvent.ACTION_UP) {
           button1IsPressed=false;
        }
     }
  };

对于按钮2您可以执行以下操作:

button2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if(button1IsPressed){
                  //Write your to do code here
            }
        }
    });

答案 1 :(得分:0)

您可以尝试使用onTouchListeners。在第一个按钮中修改向下和向上事件的布尔值,在第二个按钮中,仅在布尔值为真时执行操作。

答案 2 :(得分:0)

如果按钮是切换按钮,那么我认为是这样的:

public void onToggleClicked(View view) {
    // Is the toggle on?
    boolean on = ((ToggleButton) view).isChecked();

    if (on) {
        // Do something
    } else {
        // Disable vibrate
    }
}

这里最重要的是isChecked()函数,可以在检查哪一个被检查时使用,以便执行某些操作。您可以在以下两个按钮的XML中设置:

android:onClick="onToggleClicked"然后使用isChecked确定检查哪一个如下:

 boolean on1 = ((ToggleButton) view1).isChecked();
 boolean on2 = ((ToggleButton) view2).isChecked();

if (on1)
  //do something with button2
if (on2)
  //do something with button1

干杯

答案 3 :(得分:0)

android-16 / ApiDemos项目中有一个示例代码,名为“Views - >跨视图拆分”(SplitTouchView.java)。在该示例中,封闭LinearLayout的属性android:splitMotionEvents="true"允许同时滚动两个列表视图。

根据Android 3.0 API Overview这个属性出现在这个api版本中:

  

以前,只有一个视图可以同时接受触摸事件。 Android 3.0增加了对跨视图甚至窗口分割触摸事件的支持,因此不同的视图可以接受同时触摸事件。