是否可以这样呢?
按下去的时候记录当前时间downT
弹起来的时候取当前时间upT
自定义一个长按的值LONGT在弹起来的时候:
如果 upT-downT>LONGT 就算长按.触发长按事件
按下去的时候记录当前时间downT
弹起来的时候取当前时间upT
自定义一个长按的值LONGT在弹起来的时候:
如果 upT-downT>LONGT 就算长按.触发长按事件
解决方案 »
- 使用Toast不能显示的问题,求解
- android launcher和视频组件bug
- android 如何获取手机信号详细值
- 希望高手推荐一个相对容易入门的android游戏引擎
- 关于google Map的问题求解!!!
- android模拟器怎样连接电脑
- getSharedPreferences
- 在一个网关上有三个摄像机,我想通过访问网关地址直接去访问摄像机该怎么做呢?
- 如何才能把数据插入到ContentResolver的最开始位置
- 【求助】项目中自己写的类与导入jar包里的类重复了,求解
- How to build .apk into system image?
- 问下button的onclick
写错了,ACTION_DOWN ACTION_UP
判定ACTION_DOWN ACTION_UP , 然后响应 自己获取时间对比吧 达到一定时间 则为长按
public boolean onLongClick () {
System.out.println("GGGGGGGGGGGGGGGG");
return false;
}
大概明白你的意思了,你是希望常按住的时候触发事件,而不是长按弹起来之后再触发是吧?
但是无论怎么样你都是需要判断是不是长按状态的
这样哪那就用线程监视MotionEvent的状态试试看吧
用一个变量保存MotionEvent的状态
当按下的时候记录当前状态为按下并启动线程
线程内部处理让线程自己休眠若干时间此事件既是长按的临界时长
然后判断其状态若还处在按下状态那就是长按了对吧?
这中情况下就可以做你希望的事情了。
若是其他状态就就结束线程吧。但记得还有移动和弹起的时候要标记其状态不然永远都是按下状态就要出问题了
不知道可否实现LZ试试有时间可以试试此愚见
还是用onTouch,ACTION_DOWN的时候记时,起个记时线程,你自己定个时间,超过了响应,ACTION_UP的时候可停止,或者不做任何操作.
onLongClick 就是这样用的. public boolean onLongClick(View v) {
// TODO Auto-generated method stub switch (v.getId()) {
case R.id.a:
break; case R.id.b:
break;
}
return false;
}
谢谢,但我还有个问题就是当我执行 onLongClick时如何获取我点击屏幕上的坐标即X和Y呢?
用onTouchEvent可以获取坐标. @Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();
return true;
}
我就想获取当我某个View触发onLongClick事件时,获取点击View时获取屏幕坐标
onTouchEvent并没有长按这个事件,我想直接用系统自带的onLongClickc事件
是没长按的事件,但可以自己设定记时器.那个view.getLeft();view.getTop()不能用吗?