长点击事件也会触发点击事件

2022-09-03 17:42:41

我使用按钮的 onLongClick 和 onClick 事件来获取用户输入。无论何时;用户长按并触发 onLongClick 事件,该 onClick 事件也被触发。我找不到我的问题。下面显示了两种方法的代码:

@Override
    public void onClick(View v) {
        switch(((Button) v).getId())
        {
        case R.id.enter:
            EntertheNumber();
            break;
        case R.id.clear:
            CleartheNumber();
            break;
        case R.id.number_zero:
        case R.id.number_one:
        case R.id.number_two:
        case R.id.number_three:
        case R.id.number_four:
        case R.id.number_five:
        case R.id.number_six:
        case R.id.number_seven:
        case R.id.number_eight:
        case R.id.number_nine:
            AddtotheNumber(mEditor, (Button) v);
            break;
        }
@Override
    public boolean onLongClick(View view) {
        if(SMBGuesstheNumber.bDisplayFlagList)
        {
            theActiveButton = (Button) view;
            showDialog(R.id.display_flaglist);
        }
        return false;
    }

实际上,我的项目是开源的。因此,您可以在 http://code.google.com/p/guessthenumber/ 找到所有代码

谢谢。


答案 1

我不确定这些事件发生的顺序,但onLongClick处理程序返回一个bool以指示事件是否已处理。如果已处理它,则应返回 true,以便不会调用其他单击事件。我不知道这是否会阻止onClick()触发。

您也可以使用 setClickable(布尔值)和 setLongClickable(布尔值)关闭和打开这些事件

可以在此处找到此信息以及有关 UI 事件的详细信息。


答案 2

以下是关于触摸事件的简要摘要:http://rxwen.blogspot.com/2010/10/android-touch-event-summary.html


推荐