Mam widok przewijania z wieloma widokami relatywnego widoku w poziomie ... po jednym dla każdego rekordu w bazie danych ... tworzonych programowo.Określić, który widok w wielu widokach ma gest (podwójne kliknięcie, przeciągnięcie w lewo, przesunięcie w prawo, itp.)?
Muszę określić, na który widok mają wpływ niektóre gesty ... kliknij, kliknij dwukrotnie i przesuń w lewo/w prawo.
Oczywiście CLICK udało mi się dostać z:
RelativeLayout rlView = new RelativeLayout(this);
rlView.setId(10000+myrecordid);
rlView.setOnClickListener(myviewclick);
i myviewclick:
private View.OnClickListener myviewclick = new View.OnClickListener() {
public void onClick(View v) {
Integer i=v.getId()-10000;
// Do some processing on this view
}
};
Z tego co znalazłem w Internecie, próbowałem dostać Gest ten sposób:
rlView.setOnTouchListener(myviewtouch);
z tym kodem:
private View.OnTouchListener myviewtouch = new View.OnTouchListener(){
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
GestureDetector gestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDoubleTap(MotionEvent e) {
Log.i("MYLOG","double tap");
return true;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
Log.i("MYLOG","SingleTapConfirmed");
return true;
}
@Override
public void onLongPress(MotionEvent e) {
Log.i("MYLOG","LongPress");
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (e1.getX()<e2.getX())
Log.i("MYLOG","Fling Right");
else
Log.i("MYLOG","Fling Left");
return true;
}
});
};
Według MYLOG otrzymuję odpowiednie gesty w razie potrzeby. Problem polega na tym, że nie wiem, jak uzyskać identyfikator widoku, w którym ten gest był. Wiem, że jest on w onTouch
, ale to się nazywa gestureDetector.OnTouchEvent
, aby określić ruch ... i jestem zagubiony w tym momencie.
Przeszukałem cały StackOverflow i inne witryny przez kilka godzin ... wszystkie pokazują różnice w sposobie określania gestu ... ale mają problemy ze znalezieniem czegokolwiek na temat korzystania z wielu widoków, z których mogę korzystać.
Każda pomoc zostanie doceniona.
Wyjaśniam kontekst, dlaczego dodawam nagrodę [w tym pytaniu] (https://stackoverflow.com/questions/45070129/detecting-common-gestures-on-multiple-views-in-android). – Suragch