android - Starting new activity from asynctask in tabhostView -


i have problem code:

i working on app requires log in. app consists of loading screen , tabview 4 tabs. last tab activity wil let login. have set edittext views here , login button.

the login activity done far here's code:

package com.appsoweb.kvodeventer;  import org.json.jsonobject;  import android.app.activity; import android.app.progressdialog; import android.content.intent; import android.os.asynctask; import android.os.bundle; import android.util.log; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.edittext;  public class kvomeldingen extends activity {         public static final jsonobject jsonresult = null;        button blogin, bcreateaccount, bresetpassword;        edittext etusername, etpassword;        static string username;        static string password;         public void oncreate(bundle savedinstancestate) {              super.oncreate(savedinstancestate);              setcontentview(r.layout.meldingen);              final edittext etusername = (edittext) findviewbyid(r.id.etusername);              final edittext etpassword = (edittext) findviewbyid(r.id.etpassword);              button blogin = (button) findviewbyid(r.id.blogin);              button bcreateaccount = (button) findviewbyid(r.id.bcreateaccount);              button bresetpassword = (button) findviewbyid(r.id.bresetpassword);               blogin.setonclicklistener(new onclicklistener() {                      @override                     public void onclick(view v) {                            if (etusername.length() <= 0) {                                   etusername.seterror("veld mag niet leeg zijn");                            } else if (etpassword.length() <= 0) {                                   etpassword.seterror("veld mag niet leeg zijn");                            } else {                                   username = etusername.gettext().tostring();                                   password = etpassword.gettext().tostring();                            }                            logintask ndlt = new logintask();                            ndlt.execute();                     }              });               bcreateaccount.setonclicklistener(new onclicklistener() {                      @override                     public void onclick(view arg0) {                            // doe iets hier.......                      }               });               bresetpassword.setonclicklistener(new onclicklistener() {                      @override                     public void onclick(view v) {                            // doe iets hier........                      }               });         }         public static string getusername() {              return username;        }         public static string getpassword() {              return password;        }         class logintask extends asynctask<void, void, jsonobject> {              progressdialog waitingdialog;               @override              protected void onpreexecute() {                     waitingdialog = new progressdialog(kvomeldingen.this);                     waitingdialog.setmessage("laden...");                     waitingdialog.show();                     super.onpreexecute();              }               @override              protected jsonobject doinbackground(void... params) {                      jsonobject json = jsonfunctionlogin                                   .getjsonloginresult("http://api.crossalertdeventer.nl/login.json");                     return json;               }               @override              protected void onpostexecute(jsonobject json) {                     super.onpostexecute(json);                     if (waitingdialog.isshowing()) {                            waitingdialog.dismiss();                            log.d("iets gebeurt", "gedaan");                     }                     try {                             string loginresult = json.getstring("login");                            string useridresult = json.getstring("user_id");                            log.d("loginresult", loginresult);                            log.d("loginuserid", useridresult);                            json = null;                            if (loginresult == "succes"){                                   // open activity listview.                            } else {                                   // don't show items , give error message.                            }                       } catch (exception e) {                            log.e("kvomeldingen", "error" + e.getmessage());                      }               }        }   } 

you can see authentication happens in background.

now see if statement block on postexecute method: want open activity if user succesfully logged in, loads json web , puts in list item.

now don't know how that. because if use intent, new listactivity opened not within tabview of starting activity. how can this?

i did similar, try this. pass activity asynctask class , save member variable. in onpostexecute() method, call method main activity open new activity or show error message. worked me!! ;-)

some code:

public logintask(activity parentactivity) {         mparentactivity = parentactivity;     }  @override protected void onpostexecute(jsonobject json) {     ...     if (loginresult == "succes"){         mparentactivity.opennewactivity(json);     } else {         mparentactivity.showerrormessage("error");     }     ... } 

Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -