android - Onclicklistener for a programatically created button -
i have looked answer can't seem find one.
i have button has been created programmatically (rather in xml file) , want happen when clicked, show alert or move screen etc.
button code:
button submitbutton = new button(this); submitbutton.setid(99); submitbutton.settext("submit");
listener code:
view submitbuttonlistener = findviewbyid(99); submitbuttonlistener.setonclicklistener(this);
so have set listner find button error
the method setonclicklistener(view.onclicklistener) in type view not applicable arguments (registerscreen) registerscreen.java /accessibleapp/src/org/project/accessible line 217 java problem
i think may fact don't have setcontentview();
@ start of class because whole page written programmatically (because need add checkboxes programmatically).
here code below if helps:
public class registerscreen extends activity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); //initiate database qureied databasedata db = new databasedata(this); db = new databasedata(this); try { db.createdatabase(); } catch (ioexception ioe) { throw new error("unable create database"); } try { db.opendatabase(); } catch(sqlexception sqle){ throw sqle; } sqlitedatabase rdb = db.getreadabledatabase(); //main layout of screen linearlayout layoutmain = new linearlayout(this); layoutmain.setorientation(linearlayout.vertical); layoutmain.setbackgroundcolor(color.white); //linear layout banner linearlayout banner = new linearlayout(this); banner.setorientation(linearlayout.vertical); banner.setbackgroundcolor(color.rgb(17, 168, 191)); //layout params height , width layoutparams bannerparams = new android.widget.linearlayout.layoutparams( android.widget.linearlayout.layoutparams.fill_parent, 40); banner.setlayoutparams(bannerparams); //banner text textview bannertext = new textview(this); bannertext.settext("register"); bannertext.settextcolor(color.white); banner.addview(bannertext); bannertext.settextsize(24); bannertext.setgravity(gravity.center); //add banner layout main layout layoutmain.addview(banner); //scroll view rest of screen scrollview sv = new scrollview(this); //table layout align items register form items tablelayout tl = new tablelayout(this); //table rows put items on left , right sides of page tablerow usernametr = new tablerow(this); //username label textview usernamel = new textview(this); usernamel.settext("username:"); usernamel.settextcolor(color.black); usernametr.addview(usernamel); //username textbox edittext usernametb = new edittext(this); usernametb.setwidth(250); usernametr.addview(usernametb); tl.addview(usernametr); tablerow emailtr = new tablerow(this); //email label textview emaill = new textview(this); emaill.settext("email:"); emaill.settextcolor(color.black); emailtr.addview(emaill); //email textbox edittext emailtb = new edittext(this); emailtb.setwidth(250); emailtr.addview(emailtb); tl.addview(emailtr); tablerow forenametr = new tablerow(this); //forename label textview forenamel = new textview(this); forenamel.settext("forename:"); forenamel.settextcolor(color.black); forenametr.addview(forenamel); //forename textbox edittext forenametb = new edittext(this); forenametb.setwidth(250); forenametr.addview(forenametb); tl.addview(forenametr); tablerow surnametr = new tablerow(this); //surname label textview surnamel = new textview(this); surnamel.settext("surname:"); surnamel.settextcolor(color.black); surnametr.addview(surnamel); //surname textbox edittext surnametb = new edittext(this); surnametb.setwidth(250); surnametr.addview(surnametb); tl.addview(surnametr); tablerow streettr = new tablerow(this); //street label textview streetl = new textview(this); streetl.settext("street:"); streetl.settextcolor(color.black); streettr.addview(streetl); //street textbox edittext streettb = new edittext(this); streettb.setwidth(250); streettr.addview(streettb); tl.addview(streettr); tablerow postcodetr = new tablerow(this); //postcode label textview postcodel = new textview(this); postcodel.settext("postcode:"); postcodel.settextcolor(color.black); postcodetr.addview(postcodel); //postcode textbox edittext postcodetb = new edittext(this); postcodetb.setwidth(250); postcodetr.addview(postcodetb); tl.addview(postcodetr); tablerow citytr = new tablerow(this); //city label textview cityl = new textview(this); cityl.settext("city:"); cityl.settextcolor(color.black); citytr.addview(cityl); //city textbox edittext citytb = new edittext(this); citytb.setwidth(250); citytr.addview(citytb); tl.addview(citytr); tablerow countytr = new tablerow(this); //county label textview countyl = new textview(this); countyl.settext("county:"); countyl.settextcolor(color.black); countytr.addview(countyl); //county textbox edittext countytb = new edittext(this); countytb.setwidth(250); countytr.addview(countytb); tl.addview(countytr); //add table layout scroll view //country dropdown textview cattitle = new textview(this); cattitle.settext("\nplease select categories affect you:\n"); cattitle.settextcolor(color.black); tl.addview(cattitle); //categories //categories title string[] cols = {"_id", "cat_name"}; //columns searched cursor cursor = rdb.query("aa_category", cols, null, null, null, null, null); // save query db while (cursor.movetonext()) { checkbox catcb = new checkbox(this); string name = cursor.getstring(1); int id = cursor.getint(0); catcb.setid(id); catcb.settext("\n"+name+"\n"); catcb.settextcolor(color.black); tl.addview(catcb); } //add field new category text field become active on clicking checkbox button submitbutton = new button(this); submitbutton.setid(99); submitbutton.settext("submit"); view submitbuttonlistener = findviewbyid(99); submitbuttonlistener.setonclicklistener(this); tl.addview(submitbutton); //add table layout scroll view sv.addview(tl); //add scroll view main layout layoutmain.addview(sv); this.setcontentview(layoutmain); } }
your activity isn't implementing view.onclicklistener. change class definition to
public class registerscreen extends activity implements view.onclicklistener
and add
public void onclick(view v) { }
to activity class.
Comments
Post a Comment