0

我有 2 个按钮,我需要在现在按下第一个按钮时从第二个按钮读取 onClick 事件,并且 vv Like 在键盘中。怎么做?

  • 编辑

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

4

4 回答 4

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
            }
        }
    });
于 2013-03-04T09:14:05.760 回答
0

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

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

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

于 2013-03-05T08:12:56.500 回答
0

您可以尝试使用onTouchListeners. 在第一个按钮中修改一个关于 down 和 up 事件的布尔值,在第二个按钮中,只在布尔值为 true 时执行一个动作。

于 2013-03-04T08:34:22.083 回答
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

干杯

于 2013-03-04T08:36:54.013 回答