hello everyone im developing an etch a sketch game in android using buttons but when i try pressing the button doesn't work or there is an error i dont know if it has something to do with the button coding or the canvas drawing the line please help me and give me some ideas how to fix this thanks:)


import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;

import android.view.Surface;
import android.view.SurfaceHolder;
import android.widget.Button;
import android.view.View;
import android.widget.TextView;
import android.graphics.Canvas;




import android.graphics.Paint;
import android.view.MotionEvent;


import java.util.Timer;



    public class MainActivity extends ActionBarActivity implements View.OnTouchListener {

        int y1 = 0;
        int x1 = 0;
        int y2 = 0;
        int x2 = 0;
     
        private TextView mTextView;
        protected Canvas canvas;
        private SurfaceHolder surfaceHolder;


        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
           
            setTitle("Etch-A-Sketch");

         
            setContentView(R.layout.activity_main);
        }


        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu_main, menu);
            Button buttonU = (Button) findViewById(R.id.buttonUP);
            buttonU.setOnTouchListener(this);
            Button buttonD = (Button) findViewById(R.id.buttonDown);
            buttonD.setOnTouchListener(this);
            Button buttonL = (Button) findViewById(R.id.buttonLeft);
            buttonL.setOnTouchListener(this);
            Button buttonR = (Button) findViewById(R.id.buttonRight);
            buttonR.setOnTouchListener(this);

            return true;
        }



        protected void draw() {
            canvas = this.surfaceHolder.lockCanvas();
            Paint paint = new Paint();
            paint.setColor(Color.BLUE);
            //canvas.drawLine(x1, y1, x2, y2, new Paint());
            canvas.drawLine(0, 0, x2, y2, new Paint());

        }

        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub

            switch (v.getId()) {
                case R.id.buttonUP:
                   // x1 = x2;
                    y2 -= 10;
                    break;
                case R.id.buttonDown:
                   // x1 = x2;
                    y2 += 10;
                    break;
                case R.id.buttonLeft:
                    //y1 = y2;
                    x2 -= 10;
                    break;
                case R.id.buttonRight:
                    //y1 = y2;
                    x2 += 10;
                    break;
            }
            draw();
            return false;
            //return true;
        }



    }