Android: onTouch not called
<p>So, i'm trying to start activity by sweeping across the screen, it works fine for all the other screens, just this screen that doesn't fire the onTouch at all? Would you mind helping me? I've tried debugging it and still have no idea at all. Below are the codes, sorry for not putting snippets only as I thought I might did something wrong elsewhere   </p>

<p>Btw, I'm also looking for advice on implementing sweeping to change screen. I've read about ViewFlipper and I know it will work very well, but I've around 8 screens with different backend coding needed. Anyways, I really need advice on this.</p>

<p>Thanks alot!!</p>

<p>Alvin</p>

<pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
</code></pre>

<p></p>

<pre><code>    &lt;TextView android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:textSize="20dip"
            android:padding="5dip" android:textStyle="bold" android:text="@string/skills" /&gt;

    &lt;TextView android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:padding="5dip"
            android:textSize="12dip" android:layout_marginLeft="10dip"
            android:text="@string/proficiency" /&gt;

    &lt;LinearLayout android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:orientation="horizontal"
            android:gravity="center"&gt;
            &lt;Button android:id="@+id/cSharp" android:layout_height="60dip"
                    android:layout_width="80dip" android:text="@string/cSharp" /&gt;
            &lt;Button android:id="@+id/cLang" android:layout_height="60dip"
                    android:layout_width="80dip" android:text="@string/cLang" /&gt;
            &lt;Button android:id="@+id/visualC" android:layout_height="60dip"
                    android:layout_width="80dip" android:text="@string/visualC" /&gt;
            &lt;Button android:id="@+id/java" android:layout_height="60dip"
                    android:layout_width="80dip" android:text="@string/java" /&gt;
            &lt;Button android:id="@+id/vb" android:layout_height="60dip"
                    android:layout_width="80dip" android:text="@string/vb" /&gt;
    &lt;/LinearLayout&gt;

    &lt;LinearLayout android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:orientation="horizontal"
            android:gravity="center"&gt;
            &lt;Button android:id="@+id/perl" android:layout_height="60dip"
                    android:layout_width="80dip" android:text="@string/perl" /&gt;
            &lt;Button android:id="@+id/win" android:layout_height="60dip"
                    android:layout_width="80dip" android:text="@string/win" /&gt;
            &lt;Button android:id="@+id/unix" android:layout_height="60dip"
                    android:layout_width="80dip" android:text="@string/unix" /&gt;
            &lt;Button android:id="@+id/linux" android:layout_height="60dip"
                    android:layout_width="80dip" android:text="@string/linux" /&gt;
            &lt;Button android:id="@+id/php" android:layout_height="60dip"
                    android:layout_width="80dip" android:text="@string/php" /&gt;
    &lt;/LinearLayout&gt;

    &lt;LinearLayout android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:orientation="horizontal"
            android:gravity="center"&gt;
            &lt;Button android:id="@+id/oracle" android:layout_height="60dip"
                    android:layout_width="80dip" android:text="@string/oracle" /&gt;
            &lt;Button android:id="@+id/mysql" android:layout_height="60dip"
                    android:layout_width="80dip" android:text="@string/mysql" /&gt;
            &lt;Button android:id="@+id/mssql" android:layout_height="60dip"
                    android:layout_width="80dip" android:text="@string/mssql" /&gt;
    &lt;/LinearLayout&gt;

    &lt;LinearLayout android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:padding="5dip"
            android:orientation="horizontal" android:gravity="bottom|right"&gt;
            &lt;ImageButton android:id="@+id/skillsPrevious"
                    android:layout_width="wrap_content" android:layout_height="wrap_content"
                    android:background="@null" android:paddingRight="3dip" android:src="@drawable/left" /&gt;
            &lt;ImageButton android:id="@+id/skillsNext"
                    android:layout_width="wrap_content" android:layout_height="wrap_content"
                    android:background="@null" android:src="@drawable/right" /&gt;
    &lt;/LinearLayout&gt;
</code></pre>

<p></p>

<pre><code>    private float oldTouchValue;
    private FormDbAdapter mDbHelper;
    private Long mRowId;
    private Button cSharp, cLang, visualC, java, vb, perl, win, unix;
    private Button linux, php, oracle, mysql, mssql;
    private ImageButton nextButton, previousButton;
    private LinearLayout skillsView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            mDbHelper = new FormDbAdapter(this);
            mDbHelper.open();
            setContentView(R.layout.skills);

            cSharp = (Button)findViewById(R.id.cSharp);
            cLang = (Button)findViewById(R.id.cLang);
            visualC = (Button)findViewById(R.id.visualC);
            java = (Button)findViewById(R.id.java);
            vb = (Button)findViewById(R.id.vb);
            perl = (Button)findViewById(R.id.perl);
            win = (Button)findViewById(R.id.win);
            unix = (Button)findViewById(R.id.unix);
            linux = (Button)findViewById(R.id.linux);
            php = (Button)findViewById(R.id.php);
            oracle = (Button)findViewById(R.id.oracle);
            mysql = (Button)findViewById(R.id.mysql);
            mssql = (Button)findViewById(R.id.mssql);

            nextButton = (ImageButton)findViewById(R.id.skillsNext);
            previousButton = (ImageButton)findViewById(R.id.skillsPrevious);

            skillsView = (LinearLayout)findViewById(R.id.skillsView);

            mRowId = (savedInstanceState == null)? null:
                    (Long)savedInstanceState.getSerializable(FormDbAdapter.KEY_ID);
            if(mRowId == null){
                    Bundle extras = getIntent().getExtras();
                    mRowId = extras.getLong(FormDbAdapter.KEY_ID);
            }

            populateFields();

            nextButton.setOnClickListener(onClick);
            previousButton.setOnClickListener(onClick);

            cSharp.setOnClickListener(onClick);
            cLang.setOnClickListener(onClick);
            visualC.setOnClickListener(onClick);
            java.setOnClickListener(onClick);
            vb.setOnClickListener(onClick);
            perl.setOnClickListener(onClick);
            win.setOnClickListener(onClick);
            unix.setOnClickListener(onClick);
            linux.setOnClickListener(onClick);
            php.setOnClickListener(onClick);
            oracle.setOnClickListener(onClick);
            mysql.setOnClickListener(onClick);
            mssql.setOnClickListener(onClick);

            skillsView.setOnTouchListener(new View.OnTouchListener() {

                    @Override
                    public boolean onTouch(View v, MotionEvent event) {
                            // TODO Auto-generated method stub
                            switch(event.getAction()){
                            case MotionEvent.ACTION_DOWN:
                                    oldTouchValue = event.getX();
                                    break;
                            case MotionEvent.ACTION_UP:
                                    if(event.getX() - oldTouchValue &lt; -200){
                                            createIntent(true);
                                            return true;
                                    }else if(event.getX() - oldTouchValue &gt; 200){
                                            createIntent(false);
                                            return true;
                                    }
                            }
                            return false;
                    }
            });
    }

    protected View.OnClickListener onClick = new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                    // TODO Auto-generated method stub
                    switch(v.getId()){
                    case R.id.skillsNext:
                            createIntent(true);
                            break;
                    case R.id.skillsPrevious:
                            createIntent(false);
                            break;
                    default:
                            addSkillDialog(v.getId());
                    }
            }
    };

    /** direction = true =&gt; next page
     *  direction = false =&gt; previous page*/
    protected void createIntent(boolean direction){
            if(direction){
                    Intent i = new Intent();
                    i.putExtra(FormDbAdapter.KEY_ID, mRowId);
                    i.setClass(skills.this, languages.class);
                    startActivityForResult(i, 0);
            }else{
                    setResult(RESULT_OK);
                    finish();
            }
    }

    /** Create custom dialog for user to input skills info.
     * @param id: id of the button clicked by user. */
    protected void addSkillDialog(int id) {
            // TODO Auto-generated method stub
            final Button button = (Button)findViewById(id);

            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            AlertDialog alertDialog;

            LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
            final View layout = inflater.inflate(R.layout.skillsdialog,
                            (ViewGroup)findViewById(R.id.skillsDialogId));

            builder.setView(layout);

            final RadioGroup radioExp = (RadioGroup)layout.findViewById(R.id.radioExp);
            final RadioGroup radioPro = (RadioGroup)layout.findViewById(R.id.radioPro);

            Cursor c = mDbHelper.fetchSkills(mRowId, button.getId());
            if(c.moveToFirst()){
                    startManagingCursor(c);
                    if(c.getString(c.getColumnIndexOrThrow(FormDbAdapter.KEY_SKILL_YEARS)).equals("0")){
                            radioExp.check(R.id.zeroYear);
                    }else if (c.getString(c.getColumnIndexOrThrow(FormDbAdapter.KEY_SKILL_YEARS)).equals("1-2")){
                            radioExp.check(R.id.onetotwo);
                    }else if (c.getString(c.getColumnIndexOrThrow(FormDbAdapter.KEY_SKILL_YEARS)).equals("3-4")){
                            radioExp.check(R.id.threetofour);
                    }else{
                            radioExp.check(R.id.five);
                    }

                    if(c.getString(c.getColumnIndexOrThrow(FormDbAdapter.KEY_SKILL_PRO)).equals("B")){
                            radioPro.check(R.id.B);
                    }else if(c.getString(c.getColumnIndexOrThrow(FormDbAdapter.KEY_SKILL_PRO)).equals("I")){
                            radioPro.check(R.id.I);
                    }else{
                            radioPro.check(R.id.A);
                    }
            }

            builder.setTitle(button.getText().toString())
            .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                            // TODO Auto-generated method stub
                            String years = null;
                            String pro = null;
                            int expId = radioExp.getCheckedRadioButtonId();
                            int proId = radioPro.getCheckedRadioButtonId();

                            switch(expId){
                            case R.id.zeroYear:
                                    years = "0";
                                    break;
                            case R.id.onetotwo:
                                    years = "1-2";
                                    break;
                            case R.id.threetofour:
                                    years = "3-4";
                                    break;
                            case R.id.five:
                                    years = "&gt;5";
                            }

                            switch(proId){
                            case R.id.B:
                                    pro = "B";
                                    break;
                            case R.id.I:
                                    pro = "I";
                                    break;
                            case R.id.A:
                                    pro = "A";
                            }

                            mDbHelper.newSkill(mRowId, button.getId(), pro, years);
                            button.setTypeface(Typeface.DEFAULT_BOLD);
                    }
            })
            .setNeutralButton("Undo Selection", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                            // TODO Auto-generated method stub
                            mDbHelper.deleteSkill(mRowId, button.getId());
                            button.setTypeface(Typeface.DEFAULT);
                    }
            })
            .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                            // TODO Auto-generated method stub
                            dialog.cancel();
                    }
            });

            alertDialog = builder.create();
            alertDialog.show();
    }

    /** Populate the fields in View if existed in database. */
    protected void populateFields(){
            Cursor c = mDbHelper.fetchAllSkills(mRowId);
            while (c.moveToNext()){
                    startManagingCursor(c);
                    Button skillBtn = (Button)findViewById(c.getInt(c.getColumnIndexOrThrow(FormDbAdapter.KEY_SKILL_NAME)));
                    skillBtn.setTypeface(Typeface.DEFAULT_BOLD);
            }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub
            super.onActivityResult(requestCode, resultCode, data);
            switch (resultCode){
            case MainPage.ACTIVITY_BACK:
                    populateFields();
                    break;
            case MainPage.ACTIVITY_DONE:
                    setResult(MainPage.ACTIVITY_DONE);
                    finish();
            }
    }

    @Override
    protected void onResume() {
            // TODO Auto-generated method stub
            super.onResume();
            populateFields();
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
            // TODO Auto-generated method stub
            super.onSaveInstanceState(outState);
            outState.putSerializable(FormDbAdapter.KEY_ID, mRowId);
    }
</code></pre>
