2013-03-04 92 views
0

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

  • 编辑

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

+0

那些切换按钮? – g00dy 2013-03-04 08:32:51

+0

类似于ctrl + C键盘快捷键? – vokilam 2013-03-04 08:50:53

+0

目的是什么?你的问题似乎并不完整。 – 2013-03-04 09:11:40

回答

0

你可以试试onTouchListeners。在第一个按钮中,修改向下和向上事件的布尔值,在第二个按钮中,只在布尔值为true时执行操作。

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 

干杯

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 
      } 
     } 
    }); 
+0

请阅读我的编辑 – Leo 2013-03-04 14:59:05

+0

如果您想识别两个触摸,那么可能需要实现ontouchlistener进行布局,并检查motionEvent对象的坐标是否在按钮边界内,如果是,则处理该事件。 – 2013-03-05 05:49:22

0

有一个在Android的16/ApiDemos项目的示例代码名为“

private boolean button1IsPressed = false; 
下面的按钮1码

写视图 - >将视图分割“(SplitTouchView.java)。在该示例中,封闭LinearLayout具有允许同时滚动两个列表视图的属性android:splitMotionEvents="true"

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

以前只有单一视图可以在同一时间接受触摸事件。 Android 3.0增加了对视图甚至窗口中的分离触摸事件的支持,因此不同的视图可以接受同时发生的触摸事件。