Android gestures not working

This is my main Java file, I'll also include my XML file, the problem is simply that the app does nothing, I need to get it to swipe to change page newPage() but nothing works. I've got a button in it that is invisible but this method isn't smooth enough for what I'm trying to do with the app.

 package com.example.cardtrick;

 import android.os.Bundle;
 import android.view.MotionEvent;
 import android.view.View;
 import android.widget.Button;
 import android.app.Activity;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.view.GestureDetector.OnGestureListener;
 import android.view.GestureDetector;


 public class Trick extends Activity implements OnGestureListener
{

private GestureDetector gestureScanner;
Button testButton;

@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_trick);


    getRequestedOrientation();
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

    setGestureScanner(new GestureDetector(this));

    setUp();

}


public void setUp()
{
    testButton = (Button) findViewById(R.id.btnHidden);     
    testButton.setText("");     
    testButton.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View V)
        {   
            newPage();  
        }

    });
}
public void newPage()
{       
    Intent myIntent = new Intent(getApplicationContext(), Trick2.class);
    startActivity(myIntent);
}

@Override
public boolean onDown(MotionEvent e) 
{
    // TODO Auto-generated method stub
    newPage();
    return false;
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) 
{
    // TODO Auto-generated method stub
    newPage();
    return false;
}

@Override
public void onLongPress(MotionEvent e) 
{
    // TODO Auto-generated method stub
}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) 
{
    // TODO Auto-generated method stub
    return false;
}

@Override
public void onShowPress(MotionEvent e) 
{
    // TODO Auto-generated method stub
}

@Override
public boolean onSingleTapUp(MotionEvent e) 
{
    // TODO Auto-generated method stub
    newPage();
    return false;
}

/**
 * @return the gestureScanner
 */
public GestureDetector getGestureScanner() {
    return gestureScanner;
}

/**
 * @param gestureScanner the gestureScanner to set
 */
public void setGestureScanner(GestureDetector gestureScanner) {
    this.gestureScanner = gestureScanner;
}


}





<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:screenOrientation="portrait"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/backnorepeat"
android:gravity="center_horizontal"
tools:context=".Trick" >


<Button
    android:id="@+id/btnHidden"
    style="@style/FullscreenActionBarStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:contentDescription="@string/card"
    android:src="@drawable/diamonds" />



</FrameLayout>

Answers


You need to add OnTouchListener to all views in your activity in order to catch Touch Events on them. Add this code to your onCreate

    View.OnTouchListener gestureListener = new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            return gestureScanner.onTouchEvent(event);
        }
    };
    ImageView iview = (ImageView) findViewById(R.id.imageView1);
    iview.setOnTouchListener(gestureListener);

Now you can catch events in onFling(). Next you have to Determine the swipe, see the answer to read how: http://stackoverflow.com/a/938657/2203164 .

EDIT: In order to catch onFling() you have to return true in your onDown().


Need Your Help

iPhone UIBarButtonItem alpha of button image

iphone image uibarbuttonitem alpha

I've added a button to a lower toolbar like this:

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.