OnFling MotionEvent e1 ноль?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 OnFling MotionEvent e1 ноль?

Сообщение Anonymous »

Хорошо. Эта штука почти сводит меня с ума.

Несколько дней назад мне удалось реализовать приведенный ниже код, и всплывающее уведомление успешно вызывалось, когда я пытался провести пальцем вправо или влево.

Однако теперь его нельзя вызвать, поскольку e1 всегда имеет значение NULL!

Как такое могло произойти? Я пробую этот код на эмуляторе, но пользователь сообщает мне, что он также не работает на реальном устройстве.

public class SwipeGestureListener extends GestureDetector.SimpleOnGestureListener{

private static final int SWIPE_MIN_DISTANCE = 150;
private static final int SWIPE_MAX_OFF_PATH = 100;

private static final int SWIPE_THRESHOLD_VELOCITY = 100;
private final Activity activity;
protected MotionEvent mLastOnDownEvent = null;

public SwipeGestureListener(Activity activity) {
this.activity = activity;
}

@Override
public boolean onDown(MotionEvent e) {
mLastOnDownEvent = e;
System.out.println(e);
return super.onDown(e);
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
System.out.println(e1 + " " + e2);
if (e1==null)
e1 = mLastOnDownEvent;
if (e1==null || e2==null)
return false;

float dX = e2.getX()-e1.getX();
float dY = e2.getY()-e1.getY();

if (Math.abs(dY)=SWIPE_THRESHOLD_VELOCITY && Math.abs(dX)>=SWIPE_MIN_DISTANCE ) {

if (dX>0) {
Toast.makeText(activity.getApplicationContext(), "Right Swipe", Toast.LENGTH_SHORT).show();
activity.fetchPrevious();
} else {
Toast.makeText(activity.getApplicationContext(), "Left Swipe", Toast.LENGTH_SHORT).show();
activity.fetchNext();
}

return true;
}

return false;
}

}


Код, реализующий жест:

final GestureDetector gdt = new GestureDetector(this, new SwipeGestureListener(this));
listview.setOnTouchListener(new OnTouchListener(){

@Override
public boolean onTouch(View v, MotionEvent event) {
gdt.onTouchEvent(event);
return false;
}

});


Подробнее здесь: https://stackoverflow.com/questions/173 ... nt-e1-null
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»