java - While loop causes the app to freeze -


sorry if i'm not submitting question correctly. it's first time here.

so i'm new coding , app development. i've been learning java past few weeks , trying make android app. it's simple number guessing game.

so have code if few "if" statements, it'll work. of course 1 guess since it's not loop.

when put in while loop app freeze when while loop tries loop.

here code:

package com.example.jeremy.numberguessinggame;  import org.w3c.dom.text;  import java.util.random;  public class mainactivity extends appcompatactivity {  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);      final textview title = (textview) findviewbyid(r.id.textview1);     final edittext userguess = (edittext) findviewbyid(r.id.edittext1);     button btnsubmit = (button) findviewbyid(r.id.button1);     final textview guessfeedback = (textview) findviewbyid(r.id.textview2);     final textview textnumberofguesses = (textview) findviewbyid(r.id.textview3);     final textview textguessnumber = (textview) findviewbyid(r.id.textview4);     final textview textcorrectnumber = (textview) findviewbyid(r.id.temptext);     random rand = new random();     final int correctnumber = rand.nextint(5)+1;      //this line convert int correctnumber string     textcorrectnumber.settext(string.valueof(correctnumber));          btnsubmit.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                  int numberoftries = 0;                  //to compare (edittext)userguess (integer)rand, need string userguess, ,                 //convert string integer                 string convertedstring = userguess.gettext().tostring();                 int convertednumber = integer.parseint(convertedstring);                  while (true) {                     if (convertednumber == correctnumber) {                         guessfeedback.settext("you guessed correct number");                         numberoftries++;                         textguessnumber.settext(string.valueof(numberoftries));                         title.settext("you won!!!!!");                         break;                     } else if (convertednumber > 5 || convertednumber < 1) {                         guessfeedback.settext("the number between 1 , 5.");                         numberoftries++;                         textguessnumber.settext(string.valueof(numberoftries));                     } else if (convertedstring.equals(null)) {                         guessfeedback.settext("nope.");                     } else if (convertednumber > correctnumber) {                         guessfeedback.settext("your guess high.");                         numberoftries++;                         textguessnumber.settext(string.valueof(numberoftries));                     } else if (convertednumber < correctnumber) {                         guessfeedback.settext("your guess low.");                         numberoftries++;                         textguessnumber.settext(string.valueof(numberoftries));                     }                 }             }          }); } 

i've tried googling decent amount i'm not finding issue. here link code: https://pastebin.com/b11pgvzd.

anyone have idea of be?

you don't need while loop here. if understand correctly, current while loop inside listener on sort of submit button user input. well, need check once each click of button, because until user has submitted input, hasn't happened yet business logic point of view.

int numberoftries = 0;  btnsubmit.setonclicklistener(new view.onclicklistener() {     @override     public void onclick(view v) {         if (convertednumber == correctnumber) {             guessfeedback.settext("you guessed correct number");             numberoftries++;             textguessnumber.settext(string.valueof(numberoftries));             title.settext("you won!!!!!");         } else if (convertednumber > 5 || convertednumber < 1) {             guessfeedback.settext("the number between 1 , 5.");             numberoftries++;             textguessnumber.settext(string.valueof(numberoftries));         } else if (convertedstring.equals(null)) {             guessfeedback.settext("nope.");         } else if (convertednumber > correctnumber) {             guessfeedback.settext("your guess high.");             numberoftries++;             textguessnumber.settext(string.valueof(numberoftries));         } else if (convertednumber < correctnumber) {             guessfeedback.settext("your guess low.");             numberoftries++;             textguessnumber.settext(string.valueof(numberoftries));         }     } }); 

Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -