validation - Android: Dealing with blank/invalid entry? -
in following code taking answer user mathematical question. when answer entered question updates new one.
how add validation when user enters letters or hits submit without entering answer, question stays same , allows user enter again. @ minute, when happens app crashes. (note: main functionality refering occurs in onclick).
public class practicetest extends activity implements view.onclicklistener{ //declare vars int multiplier; int[] results=new int[12]; int numberpassed; textview question; edittext answer; int score; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.practicetest); // declares , int variable, assigns int value // calling intent if not there defaulted 0 numberpassed = getintent().getintextra("convertednumber2", 0); //setting vars(possibly in different method? button submit = (button) findviewbyid(r.id.btngopractice2); //declared here used once answer = (edittext) findviewbyid(r.id.etenternumberpractice2); question = (textview) findviewbyid(r.id.tvtoppractice2); //setting listeners submit.setonclicklistener(this); updatequestion(); } public void onclick(view view) { // sets text view equal whats typed in in edittext final string entry = answer.gettext().tostring(); // convert string value int int = integer.parseint(entry); //note: maybe change name results[multiplier-1]=a; score++;//irrelevant? if(multiplier<12){ //called after answer given updatequestion(); } else{ //system.out.println(score); intent intent = new intent(this, results.class); intent.putextra("results", results); intent.putextra("numberpassed", numberpassed); this.startactivity(intent); } } public void updatequestion(){ multiplier++; //string hold quest string q= numberpassed + "x" + multiplier + "="; question.settext(q); answer.settext(""); } }
so entry answer get? maybe try regex, can use code after submitting answer or check when user edits edittext. last thing can done textwatcher, make bit more complicated necessary.
if(entry.matches("[0-9]+") { // new question } else { // warning no valid answer } if want users have option input numbers. should set in edittext:
android:inputtype="number"
Comments
Post a Comment