onOptionsItemSelected调用两次

时间:2014-12-05 20:21:02

标签: android android-actionbar

在Nexus 5上运行Android 5.0。我的应用使用v4 Support Library 21.0.0minSdkVersion为11,targetSdkVersion为21。

我的活动源自android.support.v4.app.FragmentActivity。我在操作栏上有许多菜单项。现在,如果我快速双击其中一个操作栏的菜单项,则onOptionsItemSelected 被调用两次,从而导致我的菜单触发子活动的两个实例!是的,我的菜单处理程序返回true

我用谷歌搜索过,但找不到任何东西。我面对一个错误,还是我错过了什么?我过去实现了这一点,从未遇到过这种奇怪的行为。想法?

1 个答案:

答案 0 :(得分:0)

不确定为什么会在最新的支持库中发生,但在过去,对于任何观点,我都使用过此解决方案 -

private long mLastClickTime = 0;

protected boolean isNotAFastClick() {
     boolean result = true;
     if (SystemClock.elapsedRealtime() - mLastClickTime < FAST_CLICK_THRESHOLD) {
          result = false;
     }
     mLastClickTime = SystemClock.elapsedRealtime();
     return result;
} 

在处理任何点击事件之前,我只需调用该方法来检查它是否是快速点击。