В приведенном ниже коде onItemLongClick работает, только когда я комментирую onTouchListener. Мне нужно иметь возможность регистрировать swipes, а также длительные клики. Что я делаю не так?setOnTouchListener и setOnItemLongClickListener взаимоисключающие?
public class MainPageActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
...
getListView().setLongClickable(true);
getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), "long click", Toast.LENGTH_SHORT).show();
return true;
}
});
getListView().setOnTouchListener(new OnSwipeTouchListener() {
public void onSwipeBottom() {
Toast.makeText(MainPageActivity.this, "bottom", Toast.LENGTH_SHORT).show();
}
});
}
}
Что происходит в OnSwipeTouchListener? Если вы переопределяете onTouch, onDown или другие подобные методы, вам нужно убедиться, что вы возвращаете false, чтобы событие правильно распространялось. – rusmus
методы onSwipe не имеют возвращаемых значений, связанных с ними. – user1876617
OK, но OnSwipeTouchListener должен реализовать OnTouchListener, у которого есть возвращаемое значение. То же самое для SimpleGestureListener, поэтому вам нужно убедиться, что ваш слушатель позволяет размножаться. Btw. вам не нужно 'getListView(). setLongClickable (true);' – rusmus