我正在构建一个需要一系列滑动的应用。例如,先向左滑动,然后向右滑动,然后向上滑动。如果此组合正确,则将用户发送到新活动。我目前正在使用这个例子 http://androidexample.com/Swipe_screen_left__right__top_bottom/index.php?view=article_discription&aid=95&aaid=118
尝试了这段代码,但似乎无法使序列正确
public void onSwipe(int direction) {
int action = direction;
if (action == SimpleGestureFilter.SWIPE_LEFT) {
if (action == SimpleGestureFilter.SWIPE_RIGHT) {
if (action == SimpleGestureFilter.SWIPE_UP) {
//sent to new activity
newActivity();
}
}
}
}
答案 0 :(得分:0)
删除那些嵌套的if,因为当您在right
之后滑动left
时,它会在SimpleGestureFilter.SWIPE_RIGHT
方法中搜索不存在的onSwipe
尝试使用{{1}这个值。
编辑:代码(只是让你知道它是如何工作的)
boolean
答案 1 :(得分:0)
Aviverma的回答是在正确的轨道上,但是如果你向右滑动它也会起作用。如果你想要一个明确定义的序列,你应该使用一个数组来跟踪已完成的滑动以及模式中所需的下一次滑动。
int index = 0;
int[] pattern = new int[] { SimpleGestureFilter.SWIPE_LEFT,
SimpleGestureFilter.SWIPE_RIGHT,
SimpleGestureFilter.SWIPE_UP };
public void onSwipe(int direction) {
if (pattern[index] == direction) {
// It's a match! Go onto the next one
index++;
} else {
// Bad swipe, reset the user's swipe progress
index = 0;
}
if (index == pattern.length) {
// Reached the end of the pattern! We can perform the action now.
// Reset index in case we need this again later
index = 0;
newActivity();
}
}