首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想显示一些文本onDoubleClick事件,该怎么做?我已经附上了我的源码

我想显示一些文本onDoubleClick事件,该怎么做?我已经附上了我的源码
EN

Stack Overflow用户
提问于 2019-03-25 23:49:14
回答 1查看 47关注 0票数 0

我想在一个文本字段上应用一个doubleClick事件,它在双击事件上显示一些文本,但它一直给我错误,有没有什么方法可以简单地做到这一点

代码语言:javascript
复制
TextView tv;
@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tv = (TextView) findViewById(R.id.mytext);
    tv.setOnTouchListener(new OnDoubleTapListener() {
                              @Override
                              public boolean onSingleTapConfirmed(MotionEvent e) {
                                  return true;
                              }

                              @Override
                              public boolean onDoubleTap(MotionEvent e) {
                                  tv.setText("DoubleTouch");
                                  return true;
                              }

                              @Override
                              public boolean onDoubleTapEvent(MotionEvent e) {
                                  tv.setText("Double Touch ");
                                  return true;
                              }
                          }

    );
}
EN

回答 1

Stack Overflow用户

发布于 2019-03-26 00:08:58

您应该像这样初始化手势检测器

代码语言:javascript
复制
  GestureDetector gd = new GestureDetector(this, new GestureDetector.OnGestureListener() {
        @Override
        public boolean onDown(MotionEvent motionEvent) {
            return false;
        }

        @Override
        public void onShowPress(MotionEvent motionEvent) {

        }

        @Override
        public boolean onSingleTapUp(MotionEvent motionEvent) {
            return false;
        }

        @Override
        public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) {
            return false;
        }

        @Override
        public void onLongPress(MotionEvent motionEvent) {

        }

        @Override
        public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) {
            return false;
        }
    });

然后双击listener,如下所示

代码语言:javascript
复制
  gd.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() {
        @Override
        public boolean onSingleTapConfirmed(MotionEvent motionEvent) {
            return false;
        }

        @Override
        public boolean onDoubleTap(MotionEvent motionEvent) {
            return false;
        }

        @Override
        public boolean onDoubleTapEvent(MotionEvent motionEvent) {
            return false;
        }
    });

最后,将侦听器应用于视图,如下所示

代码语言:javascript
复制
  tv.setOnTouchListener(new View.OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        // TODO Auto-generated method stub
        gd.onTouchEvent(event);
        return false;
    }
});

有关更多信息,请参阅Android文档Detect Common gestures

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55341632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档