Я хочу задать несколько вопросов об этом коде. Мне нужна помощь, пожалуйста,Жесты на newboston
Вопросы:
Почему они реализуют извещателя на Жест интерфейс таким образом
GestureDetector.OnGestureListener,GestureDetector.OnDoubleTapListener
это первый раз, когда я вижу интерфейс как этотmyGesture=new GestureDetectorCompat(this,this);
Почему они инициализируют o bject из интерфейса?
Нельзя ли это сделать, только если мы используем анонимный класс?
И почему они использовали (компактный детектор жестов) вместо (детектор жестов)?
Я не могу понять ключевое слово (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;
}
}
Я искал об этих вопросах, и я Жду» найти что-нибудь полезное.
Может ли кто-нибудь объяснить мне?
Вы прочитали документацию по этим методам? И класс реализует эти 2 интерфейса для GestureDetector, что с этим не так? Код намного чище с 'this', а не анонимными классами –
, который читать, я не понимаю документацию, это запутывает –
Посмотрите на используемые классы. Прочтите параметры и описания метода. Это только JavaDoc, поэтому, если вы понимаете Java, тогда вы узнаете, какие методы делают что. https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat.html –