java - LongClick 事件也会触发 Click 事件

标签 java android events 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;
    }

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

谢谢。

最佳答案

我不确定这些事件发生的顺序,但 onLongClick 处理程序返回一个 boolean 值以指示是否处理了事件。如果您处理了它,您应该返回 true,这样其他点击事件就不会被调用。我不知道这是否会阻止 onClick() 触发。

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

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

关于java - LongClick 事件也会触发 Click 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/742171/

相关文章:

java - 使用java,浏览器在Windows 7中工作,而不是在Windows XP中从GUI打开组件?

javascript - 无法重新绑定(bind)滚动事件?

java - HTTP 连接线程不更新 TimerTask 内的结果 - BlackBerry Java

java - 如何在 jdbc MySQL 查询中处理 0000-00-00 日期

android - 推送通知 ios 等效于 android

java - 尝试克服Android Java jdk限制

android - 谷歌地图 v2 使信息窗口不可点击

events - 你如何应对分布式系统中没有事件?

javascript - 如何防止在单击后删除文本中的选择?

java - 一定时间后开卡