单击按钮时双击,如何做好

时间:2016-09-12 12:31:44

标签: android

我为点击

创建了双重操作
private int pos = 0;

    private void changeImageVolumeOffOn() {
        buttonMuteVolume.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (pos == 0) {
                    pos++;
                    buttonMuteVolume.setBackgroundResource(R.drawable.volume_off);
                } else {
                    pos--;
                    buttonMuteVolume.setBackgroundResource(R.drawable.volume_on);
                }
            }
        });
    }

但我认为这不是做这件事的好方法。我需要紧急更改图像,仅用于向朋友展示。如何进行双击动作?

5 个答案:

答案 0 :(得分:1)

要删除if语句,您可以使用ternary operator

boolean clicked = false;

private void changeImageVolumeOffOn() {
    buttonMuteVolume.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            clicked = !clicked;
            buttonMuteVolume.setBackgroundResource(clicked ? R.drawable.volume_off : R.drawable.volume_on);
        }
    });
}

答案 1 :(得分:0)

boolean clicked = false;

private void changeImageVolumeOffOn() {
    buttonMuteVolume.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            clicked = !clicked;
            if (clicked) {
                buttonMuteVolume.setBackgroundResource(R.drawable.volume_off);
            } else {
               buttonMuteVolume.setBackgroundResource(R.drawable.volume_on);
            }
        }
    });
}

答案 2 :(得分:0)

使用带有两个可绘制状态的选择器xml。 选定 - 量上 未选中 - 音量关闭

如果发生任何点击 boolean newState = button.isSelected()?false:true; button.setSelected(newState);

这将解决您的问题

答案 3 :(得分:0)

int isClicked=false

    buttonMuteVolume.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (isClicked) {
                buttonMuteVolume.setBackgroundResource(R.drawable.volume_off);
                  isClicked=false;
            } else {
               buttonMuteVolume.setBackgroundResource(R.drawable.volume_on);
                 isClicked=true;
            }
        }
    });

答案 4 :(得分:0)

你也可以这样试试。

 private void changeImageVolumeOffOn() {
        buttonMuteVolume.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               String backgroundImageName = String.valueOf(v.getTag());
               if(backgroundImageName=="volume_off" ){
                   buttonMuteVolume.setBackgroundResource(R.drawable.volume_on);
                }else {
                       buttonMuteVolume.setBackgroundResource(R.drawable.volume_off);
              }
    }


            }
        });
    }