首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在新闻发布会上的手势

在新闻发布会上的手势
EN

Stack Overflow用户
提问于 2016-08-19 11:05:29
回答 1查看 81关注 0票数 0

我想问几个关于这个代码的问题。我需要帮助,拜托

问题:

  1. 为什么他们用GestureDetector.OnGestureListener,GestureDetector.OnDoubleTapListener来实现手势检测器接口? 这是我第一次看到这样的界面
  2. myGesture=new GestureDetectorCompat(this,this); 为什么他们要从接口初始化一个对象? 如果我们使用匿名类,就不能这样做吗? 为什么他们使用(手势探测器紧凑型)而不是(手势检测器)? 我不明白(这个)关键字指的是什么。 有人能给我解释一下吗?如何在不使用(this)关键字的情况下初始化对象?
  3. 这行代码也是myGesture.setOnDoubleTapListener(this); 我不明白它的存在有什么意义

代码:

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity implements GestureDetector.OnGestureListener,GestureDetector.OnDoubleTapListener {

private TextView textView1;
private GestureDetectorCompat myGesture;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView1= (TextView) findViewById(R.id.textView1);
    myGesture=new GestureDetectorCompat(this,this);
    myGesture.setOnDoubleTapListener(this);
}

@Override
public boolean onTouchEvent(MotionEvent event) {

    return this.myGesture.onTouchEvent(event);
}

@Override
public boolean onSingleTapConfirmed(MotionEvent motionEvent) {
    textView1.setText(" onSingleTapConfirmed");
    return true;
}

@Override
public boolean onDoubleTap(MotionEvent motionEvent) {
    textView1.setText("onDoubleTap");
    return true;
}

@Override
public boolean onDoubleTapEvent(MotionEvent motionEvent) {
    textView1.setText("onDoubleTapEvent");
    return true;
}

@Override
public boolean onDown(MotionEvent motionEvent) {
    textView1.setText("onDown");
    return true;
}

@Override
public void onShowPress(MotionEvent motionEvent) {

    textView1.setText("onShowPress");
}

@Override
public boolean onSingleTapUp(MotionEvent motionEvent) {
    textView1.setText(" onSingleTapUp");
    return true;
}

@Override
public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) {
    textView1.setText(" onScroll");
    return true;
}

@Override
public void onLongPress(MotionEvent motionEvent) {
    textView1.setText(" onLongPress");
}

@Override
public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) {
    textView1.setText("onFling");
    return true;

}
}

我搜索了这些问题,没有发现任何有用的东西。

有人能解释我吗?

EN

回答 1

Stack Overflow用户

发布于 2016-08-19 11:31:19

GestureDetectorCompat (上下文,GestureDetector.OnGestureListener侦听器)

活动是一个上下文和一个GestureDetector.OnGestureListener,所以这说明了(this, this)

void setOnDoubleTapListener (GestureDetector.OnDoubleTapListener侦听器)

该接口也在活动上实现,因此再次使用this

有人可以解释并初始化没有(this)关键字的对象吗?

当然可以,但是内部的匿名类会得到嵌套的所有代码,而且看起来很混乱。

这一行代码myGesture.setOnDoubleTapListener(这里);无法理解它的存在有什么意义

它的意义?它探测到一个双击..。

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

https://stackoverflow.com/questions/39037472

复制
相关文章

相似问题

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