大家好,我是参考网上比较广的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;
}}