Android按钮的软件去抖动

3
我有一个简单的ImageButton在我的Android程序中,当点击时,它会在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;
            }
        });

感谢您的帮助!

1个回答

1

OnLongClickListener中,您需要返回true,以通知其他监听器事件已被消耗,不需要进一步操作:

button0.setOnLongClickListener(new View.OnLongClickListener() {

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

信息来源: Android javadoc



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接