android - Android 按钮的软件去抖动

标签 android android-button keyboard-events bounce

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

感谢您的帮助!

最佳答案

您需要在 OnLongClickListener 中返回 true,以通知其他监听器该事件已被消耗并且不需要进一步采取行动:

button0.setOnLongClickListener(new View.OnLongClickListener() {

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

信息来源:Android javadoc

关于android - Android 按钮的软件去抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30670861/

相关文章:

android - 免费和付费版本的 Android 应用程序的最佳方法?

android - 使用客户端 SSL 身份验证时如何/在哪里存储 keystore 密码?

android - 如何在选择器中的 View 范围内保持链式 react ?

android - 在代码中设置android TextViews和Buttons

python - 如何用Python处理异步击键?

javascript - jQuery Keypad/Primefaces 键盘重新映射空格键

android - 我希望布局的 subview 随媒体播放器当前位置自动更改

java - SharedPreferences putBoolean on change 不起作用

android - 将屏幕坐标从按钮传递给父级

c++ - SFML 事件不显示?