在android中同时单击一个按钮调用其他两个按钮的功能

Posted

技术标签:

【中文标题】在android中同时单击一个按钮调用其他两个按钮的功能【英文标题】:onclick of one button calling functions of two other buttons simultaneously in android 【发布时间】:2016-06-09 07:20:53 【问题描述】:
REDLED.setOnClickListener(new View.OnClickListener() 

    @Override
    public void onClick(View v) 


        byte[] convertedBytes = convertingTobyteArray(
                IMM_MID_ALERT1);
        BluetoothLeService
                .writeCharacteristicNoresponse(
                        gattCharacteristic,
                        convertedBytes);

    
);

GREENLED.setOnClickListener(new View.OnClickListener() 

    @Override
    public void onClick(View v) 

         byte[] convertedBytes = convertingTobyteArray(
                IMM_MID_ALERT2);
        BluetoothLeService
                .writeCharacteristicNoresponse(
                        gattCharacteristic,
                        convertedBytes);

    
);
TWOLED.setOnClickListener(new View.OnClickListener() 

    @Override
    public void onClick(View v) 

       REDLED.callOnClick();
        GREENLED.callOnClick();

            
);

我正在做一个闪烁 LED 的项目。我使用两个 LED(红色、绿色)。REDLED 按钮用于闪烁红色 LED 和 GREENLED 按钮用于闪烁绿色 LED。我想通过单击 TWOLED 按钮同时工作这两个功能. 但是根据我的编码

"REDLED.callOnClick();
  GREENLED.callOnClick();"

only GREENLED.callOnClick(); works.
otherwise if I code
"GREENLED.callOnClick();
REDLED.callOnClick();"
only REDLED.callOnClick(); works.

如何使“GREENLED.callOnClick(); 和 REDLED.callOnClick();工作 同时点击 TWOLED 按钮。

【问题讨论】:

【参考方案1】:

我认为performClick() 是执行特定按钮点击的正确方法!

了解更多关于what is the difference between performClick() and callOnClick() methods的信息。

【讨论】:

我想知道这是否有助于描述双方都应该调用 onClickListener。【参考方案2】:

只要改变这个:

TWOLED.setOnClickListener(new View.OnClickListener() 

    @Override
    public void onClick(View v) 

       REDLED.callOnClick();
        GREENLED.callOnClick();

            
);

到:

TWOLED.setOnClickListener(new View.OnClickListener() 
    @Override
    public void onClick(View v) 
             callRed();
             callGreen();
            
);

callRed()callGreen()的方法定义:

private void callRed() 
byte[] convertedBytes = convertingTobyteArray(
                IMM_MID_ALERT1);
        BluetoothLeService
                .writeCharacteristicNoresponse(
                        gattCharacteristic,
                        convertedBytes);


private void callGreen() 
byte[] convertedBytes = convertingTobyteArray(
                IMM_MID_ALERT2);
        BluetoothLeService
                .writeCharacteristicNoresponse(
                        gattCharacteristic,
                        convertedBytes);

【讨论】:

以上是关于在android中同时单击一个按钮调用其他两个按钮的功能的主要内容,如果未能解决你的问题,请参考以下文章

防止在不同设备上同时点击一个按钮

当我单击多个按钮时,多个音频开始在 android studio 中同时播放

一次在两个页面中单击一个按钮

如何在类似按钮单击android时通知其他屏幕

Android:单击按钮时如何显示TextView?

我如何检查在 C# 中的其他按钮单击事件中是不是发生了离开事件