events - Creating a click handler for the View in Android -
i'm writing simple android application showing various shapes on main view:
public class figures extends activity { demoview demoview; int figure_type = 1; /** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); demoview = new demoview(this); setcontentview(demoview); } @override public boolean oncreateoptionsmenu(menu menu) { menuinflater inflater = getmenuinflater(); inflater.inflate(r.menu.firstmenu, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { switch(item.getitemid()) { case r.id.color_menu_item: break; case r.id.circle_menu_item: figure_type = 0; break; case r.id.square_menu_item: figure_type = 1; break; case r.id.triangle_menu_item: figure_type = 2; break; case r.id.exit_menu_item: super.finish(); break; default: break; } return true; } private class demoview extends view { public demoview(context context) { super(context); } @override protected void ondraw(canvas canvas) { super.ondraw(canvas); display display = getwindowmanager().getdefaultdisplay(); int width = display.getwidth(); int height = display.getheight(); paint paint = new paint(); paint.setstyle(paint.style.fill); paint.setcolor(color.white); canvas.drawpaint(paint); if (figure_type == 0) { // circle random randomcolor = new random(); paint.setcolor(randomcolor.nextint()); canvas.drawcircle(width/2, height/2-100, 100, paint); } else if (figure_type == 1) { // square random randomcolor = new random(); paint.setcolor(randomcolor.nextint()); canvas.drawrect(80, 80, 220, 220, paint); } else if (figure_type == 2) { // triangle random randomcolor = new random(); paint.setcolor(randomcolor.nextint()); path path = new path(); path.moveto(width/2, 30); path.lineto(width/2+100, height/2-50); path.lineto(70, 190); path.close(); canvas.drawpath(path, paint); } } } }
how perform event clicking on screen (or demoview)?
you need set onclicklistener on view. i.e in oncreate:
demo.setonclicklistener( new view.onclicklistener() { public void onclick (view v) { // click behavior here. });
Comments
Post a Comment