it is easy to save and use. Paste the Code :
Package Archie. android. activity; import android. app. activity; import android. OS. bundle; import android. view. keyevent; import android. view. motionevent; import android. view. view; import android. widget. button; import android. widget. toast; public class activityevent extends activity {private button OK; @ override public void oncreate (bundle savedinstancestate) {super. oncreate (savedinstancestate); setcontentview (R. layout. main); OK = (button) findviewbyid (R. id. mybutton); OK. settext (R. string. OK); OK. setonclicklistener (New button. onclicklistener () {@ overridepublic void onclick (view v) {displaytoast ("Click OK ");}});} /* press the key event */Public Boolean onkeydown (INT keycode, keyevent event) {Switch (keycode) {Case keyevent. keycode_dpad_center: displaytoast ("Press: "); break; Case keyevent. keycode_dpad_up: displaytoast ("Press: "); break; Case keyevent. keycode_dpad_down: displaytoast ("Press: "); break; Case keyevent. keycode_dpad_left: displaytoast ("Press: left arrow key"); break; Case keyevent. keycode_dpad_right: displaytoast ("Press: right arrow key"); break;} return Super. onkeydown (keycode, event);}/* release button event */Public Boolean onkeyup (INT keycode, keyevent event) {Switch (keycode) {Case keyevent. keycode_dpad_center: displaytoast ("Release: Middle"); break; Case keyevent. keycode_dpad_up: displaytoast ("Release: "); break; Case keyevent. keycode_dpad_down: displaytoast ("Release: "); break; Case keyevent. keycode_dpad_left: displaytoast ("Release: left arrow key"); break; Case keyevent. keycode_dpad_right: displaytoast ("Release: right arrow key"); break;} return Super. onkeyup (keycode, event);}/* combo event */Public Boolean onkeymultiple (INT keycode, int repeatcount, keyevent event) {return Super. onkeymultiple (keycode, repeatcount, event);}/* pen event */Public Boolean ontouchevent (motionevent event) {int iaction = event. getaction (); If (iaction = motionevent. action_cancel | iaction = motionevent. action_down | iaction = motionevent. action_move) {return false;} // int x = (INT) event. getx (); int y = (INT) event. gety (); displaytoast ("Touch coordinate: (" + integer. tostring (x) + "," + integer. tostring (y) + ")"); return Super. ontouchevent (event);} private void displaytoast (string Str) {toast. maketext (this, STR, toast. length_short ). show ();}}