在Android

时间:2016-06-09 07:20:54

标签: android

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按钮。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

只需改变一下:

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