我有2个按钮,当第一个按下现在和v.v时,我需要从第二个按钮读取onClick事件。就像键盘一样。怎么做?
不,不!我不需要检查是第一个按钮是否被点击。当第一个或第二个按钮处于ACTION_DOWN状态时我需要听另一个onClick事件如果我按下第一个按钮,我不能按第二个,但我有多点触控。
答案 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增加了对跨视图甚至窗口分割触摸事件的支持,因此不同的视图可以接受同时触摸事件。