Android 按钮的软件去抖动

Software debounce for Android buttons

我的 Android 程序中有一个简单的 ImageButton,单击它时,会在 TextView 中附加一个“0”。长按此按钮时,应该在 TextView 中附加“+”。该程序运行良好,但我遇到了典型的按键弹跳效果。当我长按按钮时,它会附加一个“+”,但当我松开按钮时,它也会附加一个“0”。似乎 Android 在长按结束时注册了第二次单击。我怎样才能消除这个?这是我正在做的事情:

ImageButton button0=(ImageButton)V.findViewById(R.id.imageButtonzero);
        button0.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                enterNumber.append("0");

            }
        });
        button0.setOnLongClickListener(new View.OnLongClickListener() {

            @Override
            public boolean onLongClick(View v) {
                enterNumber.append("+");
                return false;
            }
        });

感谢您的帮助!

您需要 return trueOnLongClickListener 中通知其他侦听器该事件已被消耗并且不需要进一步采取行动:

button0.setOnLongClickListener(new View.OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
        enterNumber.append("+");
        return true;
    }
});

信息来源:Android javadoc