长按Android

长按Android,第1张

概述我有自定义视图中检测长按的问题. 这是与此问题相关的代码 final GestureDetector gestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() { public void onLongPress(MotionEvent e) { Log.e("dbg 我有自定义视图中检测长按的问题.

这是与此问题相关的代码

final GestureDetector gestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {    public voID onLongPress(MotionEvent e) {        Log.e("dbg_msg","onLongPress");    }});public boolean ontouchEvent(MotionEvent event) {    return gestureDetector.ontouchEvent(event);};

此代码可以长时间检测每一个(短)点击.

当我将此代码放在继承自Activity的类中时,它可以工作.

那么为什么它不能在自定义视图中工作?

解决方法 所有这些代码都在你的自定义视图类中:
public static int LONG_PRESS_TIME = 500; // Time in miliseconds final Handler _handler = new Handler(); Runnable _longpressed = new Runnable() {     public voID run() {        Log.i("info","LongPress");    }   };@OverrIDepublic boolean ontouchEvent(MotionEvent event) {    switch(event.getAction()){    case MotionEvent.ACTION_DOWN:        _handler.postDelayed(_longpressed,LONG_PRESS_TIME);        break;    case MotionEvent.ACTION_MOVE:        _handler.removeCallbacks(_longpressed);        break;    case MotionEvent.ACTION_UP:        _handler.removeCallbacks(_longpressed);        break;    }    return true;}
总结

以上是内存溢出为你收集整理的长按Android全部内容,希望文章能够帮你解决长按Android所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1131424.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存