hey, can some one help me with two things?
first getting a error on "Animation animationObj" error:Animation cannot be resolved to a type
2nd i am trying to make a templet for making android games. this is what i have so far. two classes. one does the animation and other touch listener. If there is some thing better PLZ let me know so i cant edit my templet. thank you.

//first class = build and listeners
//imports etcc...
 
public class MainActivity extends Activity implements OnTouchListener{
 
	int delay = 50;
 
	/*** Object variables ***/
	Animation animationObj;
	WakeLock wL;
 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// you phone wont lock when this app is running
		PowerManager pM = (PowerManager) getSystemService(Context.POWER_SERVICE); 
		// hidden step -- mainifest > permisions > add > users permision > ok > name:android.permission.WAKE_LOCK > enter
		wL = pM.newWakeLock(PowerManager.FULL_WAKE_LOCK, "Whatever");
 
		super.onCreate(savedInstanceState);
		super.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //lock orientation
		requestWindowFeature(Window.FEATURE_NO_TITLE);                            // remove title
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
							WindowManager.LayoutParams.FLAG_FULLSCREEN);          // remove icons top
		wL.acquire();                                                             //start dont lock the screen
		animationObj = new Animation(this);
		animationObj.setOnTouchListener(this);
		setContentView(animationObj);
 
 
	}
 
	@Override
	 protected void onPause(){
		 super.onPause();
		 animationObj.pause();
		 wL.release();
	 }
 
 
 
	 @Override
	 protected void onResume(){
		 super.onResume();
		 animationObj.resume();
	 }
 
 
	 @Override
		public boolean onTouch(View v, MotionEvent event) {
		//show down the speed so slow phone can run it
			try{
				Thread.sleep(delay);
			} catch(InterruptedException e){
				e.printStackTrace();
			}
 
			if(event.getAction() == MotionEvent.ACTION_DOWN){ //user toch the screen
 
			}
			else if(event.getAction() == MotionEvent.ACTION_UP){ //user let go of touch
 
			}
 
			//return false if you dont want it to drag
			//return true if you want it to drag
			return true;
		}
 
 
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
}



//2nd class = animation and game loop
\\imports etc..
 
public class Animation extends SurfaceView implements Runnable {
	/*** GAME VARIABLES ***/
	boolean isRunning = false;
 
	/*** MENU VARIABLES ***/
 
	/*** OBJECT VARIABLES ***/
	SurfaceHolder surfaceHolderObj;
	Thread threadObj = null;
 
 
 
 
 
 
 
	//###########################################################################################################
	public Animation(Context context) {
		super(context);
		surfaceHolderObj = getHolder();
	}
 
 
 
 
 
	//###########################################################################################################
	public void resume() {
		isRunning = true;
		threadObj = new Thread(this);
		threadObj.start();
	}
 
 
 
 
 
	//###########################################################################################################
	public void pause() 
	{
		isRunning = false;
		while (true) { 	// stop thread
			try {
				threadObj.join();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			break;
		}
		threadObj = null;
	}
 
 
 
 
 
	//###########################################################################################################
	// main game loop
	@Override
	public void run() 
	{
		while (isRunning) 
		{
			if (!surfaceHolderObj.getSurface().isValid()) { // check if surface is valid
				// when come to 'continue' word than go back begin of loop and dont run below if statment
				continue;
			}
 
			Canvas canvas = surfaceHolderObj.lockCanvas();
 
			surfaceHolderObj.unlockCanvasAndPost(canvas);
		}//end of while loop
	}//End of RUN method
}