Ich habe eine listview und implementiert onclick und auch onfling.problem ist, wenn ich fling (Streichen von links nach rechts), onclick Ereignis der listview ist auch immer ausgeführt.how zu overCome dieses Problem? Wie unterscheidet man Berühren (Tippen) und Streichen (Wischen) in der Listenansicht?
listClickListener = new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,int position, long id) {
//Job of Onclick Listener
}
};
mContactList.setOnItemClickListener(listClickListener);
mContactList.setAdapter(adapter);
// Gesture detection
gestureDetector = new GestureDetector(new MyGestureDetector(prosNos));
gestureListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
return true;
}
return false;
}
};
mContactList.setOnTouchListener(gestureListener);
}
public class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
// My fling event
return false;
}
}
P.S. Ist es möglich? den OnClickListener von ListView zu kommentieren und die gleiche Logik in jedem onTouchEvent zu schreiben? aber noch habe ich keinen Zweifel, dass onFling onTouch aufrufen wird. Liege ich richtig?