我想问一些有关此代码的问题。我需要帮助
问题:
为什么他们以这种方式实施手势检测器界面 GestureDetector.OnGestureListener,GestureDetector.OnDoubleTapListener
这是我第一次看到像这样的界面
myGesture=new GestureDetectorCompat(this,this);
为什么他们从界面初始化一个对象?
只有在我们使用匿名课程时才能做到这一点吗?
为什么他们使用(手势探测器紧凑)代替(手势探测器)?
我无法理解(this)关键字指的是什么
有谁可以向我解释一下?
以及如何在不使用(this)关键字的情况下初始化对象?
这行代码 myGesture.setOnDoubleTapListener(this);
我无法理解其存在的重要性
代码:
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;
}
}
我搜索了这些问题,但没有找到任何有用的东西 有人可以解释一下吗?
答案 0 :(得分:1)
GestureDetectorCompat(上下文上下文, GestureDetector.OnGestureListener监听器)
活动是一个Context和一个GestureDetector.OnGestureListener,因此解释了(this, this)
void setOnDoubleTapListener(GestureDetector.OnDoubleTapListener listener)
该接口也在Activity上实现,因此再次使用this
。
有人可以解释并初始化没有(this)关键字的对象
当然,你可以,但是制作内部的匿名类会使所有代码嵌套,而且看起来很混乱。
这行代码myGesture.setOnDoubleTapListener(this);无法理解其存在的重要性
它的意义?它检测到双击...