@Override
 public void onItemClick(AdapterView<?> parent, final View view, final int position, long id) {
   if (mDoubleClick && mDoubleClickItemIndex == position) {
     mDoubleClick = false;
     mIOnItemClickListener.onItemDoubleClick(view, position);
   } else {
     mDoubleClick = true;
     mDoubleClickItemIndex = position;
   }
   new Handler()
       .postDelayed(
           new Runnable() {
             @Override
             public void run() {
               if (mDoubleClick) {
                 mDoubleClick = false;
                 mDoubleClickItemIndex = -1;
                 mIOnItemClickListener.onItemClick(view, position);
               }
             }
           },
           500);
 }