请大家帮忙看看这个滑动手势代码的问题

Helldance 2011-11-18 01:50:53
大家好,

我是参考网上比较广的code shogun的代码,但是运行总是有问题,请知道的指点啊

11-18 13:54:21.311: E/AndroidRuntime(12959): java.lang.StackOverflowError
11-18 13:54:21.311: E/AndroidRuntime(12959): at com.stee.android.SwipeDemo$1.onTouchEvent(SwipeDemo.java:57)
11-18 13:54:21.311: E/AndroidRuntime(12959): at com.stee.android.SwipeDemo$1.onTouchEvent(SwipeDemo.java:57)
11-18 13:54:21.311: E/AndroidRuntime(12959): at com.stee.android.SwipeDemo$1.onTouchEvent(SwipeDemo.java:57)
11-18 13:54:21.311: E/AndroidRuntime(12959): at com.stee.android.SwipeDemo$1.onTouchEvent(SwipeDemo.java:57)


/**
*
*/
package com.stee.android;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

/**
* @author Administrator
*
*/
public class SwipeDemo extends Activity implements View.OnTouchListener{
GestureDetector gestureDetector;
MyGestureDetectorListener lsnr;
Context ctx;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);

View v = findViewById(android.R.id.content);

ctx = this.getApplicationContext();

lsnr = new MyGestureDetectorListener();

v.setOnTouchListener(this);

gestureDetector = new GestureDetector(ctx, lsnr) {
@Override
public boolean onTouchEvent(MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
return true;
else
return false;
}
};
}


@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return gestureDetector.onTouchEvent(event);
}

private class MyGestureDetectorListener extends SimpleOnGestureListener {

@Override
public boolean onDown (MotionEvent e){
Log.i("", "ondown");
return true;
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Toast.makeText(ctx, "swipe left", Toast.LENGTH_SHORT).show();

} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Toast.makeText(ctx, "swipe right", Toast.LENGTH_SHORT).show();
}

return true;
}

private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
}

}
...全文
73 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rocky225 2011-11-18
  • 打赏
  • 举报
回复
(⊙o⊙)哦,是吗.恭喜啊...
Helldance 2011-11-18
  • 打赏
  • 举报
回复
已经搞定,拿掉ontouchevent方法。

80,352

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧