LongClick事件还会触发Click事件

Öme*_*mer 14 java events android event-handling

我使用按钮的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;
    }
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Arn*_*nce 35

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

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

您可以在此处找到此信息以及有关UI事件的更多信息.

  • 为什么我错过了布尔值.你是对的.返回true应该阻止onClick.谢谢. (2认同)