i new android programming , tried bubble sort inputting numbers in 1 edittext , sorted numbers outputted on textview. program has stopped unexpectedly once click input button. please "tell me wrong" thank you.
public class mainactivity extends appcompatactivity { textview result; edittext input; button asbutton; int i,j,temp,num[]; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); asbutton = (button) findviewbyid(r.id.button); input = (edittext) findviewbyid(r.id.edittext); result = (textview) findviewbyid(r.id.textview2); asbutton.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { bubblesort(); } }); } public void bubblesort() { spannable spn = input.gettext(); (int = 0; < spn.length(); i++){ num[i] = integer.parseint(""+spn.charat(i)); } (i = 0; < num.length; i++) { (j = + 1; j < num.length; j++) { if (num[i] > num[j]) { temp = num[i]; num[i] = num[j]; num[j] = temp; } } } string result = ""; (int = 0; < num.length; i++){ result += num[i] + " "; } result.settext(result); } }
you don't have initialized num. use following code
public void bubblesort() { spannable spn = input.gettext(); num = new int[spn.length()]; int count = 0; (int = 0; < spn.length(); i++){ if((spn.charat(i)+"").matches(".*\\d.*")){ num[i] = integer.parseint(""+spn.charat(i)); count++; } } (i = 0; < count; i++) { (j = + 1; j < count; j++) { if (num[i] > num[j]) { temp = num[i]; num[i] = num[j]; num[j] = temp; } } } string result = ""; (int = 0; < num.length; i++){ result += num[i] + " "; } result.settext(result); }
Comments
Post a Comment