EditText.setText does not work when a Handler call the function of Activity -


i trying change content of edittext using handler.

i have defined own application class, named myapp. own activity, named myactivity. own handler, named myhandler.

it callback method in myapp determine when change content of edittext within myactivity. myhandler handles message myapp, , calls setmessage function, defined in myactivity, change content of edittext.

here code. when application running first time, fine. quit application , reopen it, when setmessage function called, toast shown, while messages(edittext) empty. seems messages.settext doesn't work. id of messages(edittext) 1 when application running first time. , message(string) not empty.

myapp:

public class myapp extends application {  private myhandler handler;      @override     public void oncreate() {         super.oncreate();         handler = new myhandler();         init();     }      public myhandler gethandler() {         return handler;     }      ...      public class mycallback extends othercallback {          ...          @override         public void onreceivemessage(string content, string alias, string topic) {             message message = handler.obtainmessage(r.id.receive, content);             message.sendtotarget();         }          ...      } } 

myhandler:

public class myhandler extends handler {      private myactivity myactivity;      @override     public void handlemessage(message msg) {         switch (msg.what) {         case r.id.receive:             if (myactivity != null) {                 myactivity.setmessage((string) msg.obj);              }             break;         case r.id.register:             ...             break;         default:             super.handlemessage(msg);             break;         }     }      public void setactivity(myactivity activity) {         if (myactivity == null) {             this.myactivity = activity;         }     } } 

myactivity:

public class myactivity extends activity {      private edittext messages;     myapp app;     myhandler handler;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          messages = (edittext) findviewbyid(r.id.messages);          app = (myapp) getapplication();         handler = app.gethandler();         handler.setactivity(this);     }      public void setmessage(string message) {         messages.settext(message);         toast.maketext(this, message, toast.length_long).show();     } } 


Comments

Popular posts from this blog

matlab - Deleting rows with specific rules -

jquery - How would i go about shortening this code? And to cancel the previous click on click of new section? -