我有2个按钮,我需要从第二个按钮时读取onClick事件当第一个按下时现在和v.v.就像在键盘中一样。怎么做?Android按钮onclick多点触控
- 编辑
不,不!我不需要检查是否第一个按钮被点击或没有。当第一个或第二个按钮处于ACTION_DOWN状态时,如果按第一个按钮,我不能按第二个按钮,但我有多点触控,我需要再听另一个onClick事件。
我有2个按钮,我需要从第二个按钮时读取onClick事件当第一个按下时现在和v.v.就像在键盘中一样。怎么做?Android按钮onclick多点触控
不,不!我不需要检查是否第一个按钮被点击或没有。当第一个或第二个按钮处于ACTION_DOWN状态时,如果按第一个按钮,我不能按第二个按钮,但我有多点触控,我需要再听另一个onClick事件。
你可以试试onTouchListeners
。在第一个按钮中,修改向下和向上事件的布尔值,在第二个按钮中,只在布尔值为true时执行操作。
如果按钮是切换按钮,我觉得是那么的情况:
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
干杯
可能是你可以尝试下面的代码:
在类中声明一个布尔变量。
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
}
}
});
请阅读我的编辑 – Leo 2013-03-04 14:59:05
如果您想识别两个触摸,那么可能需要实现ontouchlistener进行布局,并检查motionEvent对象的坐标是否在按钮边界内,如果是,则处理该事件。 – 2013-03-05 05:49:22
有一个在Android的16/ApiDemos项目的示例代码名为“
private boolean button1IsPressed = false;
下面的按钮1码
写视图 - >将视图分割“(SplitTouchView.java)。在该示例中,封闭LinearLayout
具有允许同时滚动两个列表视图的属性android:splitMotionEvents="true"
。
根据Android 3.0 API Overview此属性出现在这个版本的API:
以前只有单一视图可以在同一时间接受触摸事件。 Android 3.0增加了对视图甚至窗口中的分离触摸事件的支持,因此不同的视图可以接受同时发生的触摸事件。
那些切换按钮? – g00dy 2013-03-04 08:32:51
类似于ctrl + C键盘快捷键? – vokilam 2013-03-04 08:50:53
目的是什么?你的问题似乎并不完整。 – 2013-03-04 09:11:40