android - Alert Dialog box being dismissed when parameters are not correct -
i have dialog box being displayed mainactivity
started. prompts user enter 2 parameters, table number , cover number. confirm , these parameters used create order object.
however problem having regardless of whether or not enter parameters box dismissed when click confirm button. box stay displayed , display toast
message outlining error.
below code works, when button clicked box disappears , toast displayed well.
many thanks.
public dialog createdialog(){ alertdialog.builder builder = new alertdialog.builder(sectionsactivity.this); view v = getlayoutinflater().inflate(r.layout.order_dialog, null); builder.setview(v); tablenum = (edittext)v.findviewbyid(r.id.numberentry); covernum = (edittext)v.findviewbyid(r.id.coversentry); builder.setmessage("order information"); builder.setpositivebutton("confirm", new dialoginterface.onclicklistener() { @override public void onclick(dialoginterface dialog, int id) { if(tablenum.gettext().length() != 0 && covernum.length() != 0){ //create order object in here table = integer.parseint(tablenum.gettext().tostring()); covers = integer.parseint(covernum.gettext().tostring()); order.getinstance().settablenumber(table); order.getinstance().setcovernumber(covers); created = true; }else{ toast.maketext(getapplicationcontext(), "must enter table , cover number", toast.length_short).show(); } } }); return builder.create(); }
edit:
if(!order.getinstance().getcreated()){ dialog d = createdialog(); d.show(); }
try this
alertdialog alertdialog = builder.create(); builder.setonshowlistener(new dialoginterface.onshowlistener() { @override public void onshow(dialoginterface dialog) { button b = alertdialog.getbutton(alertdialog.button_positive); b.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { string strcomments = youredittext.gettext().tostring().trim(); // textbox value here if(strcomments==null || strcomments.length()==0) { toast.maketext(context, "please enter general comments", 1).show(); } else { alertdialog.dismiss(); // stuff if success } } }); } });
what doing is, overrding alertdialog positive button, avoid closing of button without entering values field
edit:
public dialog createdialog(){ alertdialog.builder builder = new alertdialog.builder(sectionsactivity.this); view v = getlayoutinflater().inflate(r.layout.order_dialog, null); builder.setview(v); tablenum = (edittext)v.findviewbyid(r.id.numberentry); covernum = (edittext)v.findviewbyid(r.id.coversentry); builder.setmessage("order information"); builder.setpositivebutton("confirm", new dialoginterface.onclicklistener() { @override public void onclick(dialoginterface dialog, int id) { if(tablenum.gettext().length() != 0 && covernum.length() != 0){ //create order object in here table = integer.parseint(tablenum.gettext().tostring()); covers = integer.parseint(covernum.gettext().tostring()); order.getinstance().settablenumber(table); order.getinstance().setcovernumber(covers); created = true; }else{ toast.maketext(getapplicationcontext(), "must enter table , cover number", toast.length_short).show(); } } }); alertdialog alertdialog = builder.create(); builder.setonshowlistener(new dialoginterface.onshowlistener() { @override public void onshow(dialoginterface dialog) { button b = alertdialog.getbutton(alertdialog.button_positive); b.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { string strcomments = youredittext.gettext().tostring().trim(); // textbox value here if(strcomments==null || strcomments.length()==0) { toast.maketext(context, "please enter general comments", 1).show(); } else { alertdialog.dismiss(); // stuff if success } } }); } }); return alertdialog ; }
Comments
Post a Comment