android - Where should I add in my alertdialog and how to get the value in the json? -


tutorial link used: http://www.androidhive.info/2012/08/android-session-management-using-shared-preferences/

problem is: have working login , sign activity application. however, want prompt alert dialog after users click login/sign button show information.

i followed tutorial link above , created alertdialogmanager.java. code login button:

try{                                                             int success = json.getint(tag_success);             //string message = json.getstring(tag_message);             //log.v("signup", "checkpoint 3");               if (success == 1) {                 session.createloginsession(email);                  intent = new intent(getapplicationcontext(), home.class);                 startactivity (i);                  finish();             }else{                 //failed login                                }         } catch (jsonexception e){             e.printstacktrace();         } 

i tried adding alertdialog code in section when application failed log user in. alertdialog code:

alert.showalertdialog(login.this,"login failed", "bla bla bla", false); 

whenever tried click log in button, whole application crashed , show me logcat below:

05-15 10:08:55.641: w/dalvikvm(2338): threadid=11: thread exiting uncaught exception (group=0x40a71930) 05-15 10:08:55.701: e/androidruntime(2338): fatal exception: asynctask #1 05-15 10:08:55.701: e/androidruntime(2338): java.lang.runtimeexception: error occured while executing doinbackground() 05-15 10:08:55.701: e/androidruntime(2338):     @ java.util.concurrent.futuretask.setexception(futuretask.java:219) 05-15 10:08:55.701: e/androidruntime(2338): caused by: java.lang.runtimeexception: can't create handler inside thread has not called looper.prepare() 

i still quite new android programming >< can please me out? thanks! tell me else need , post here.

entire code below: public class login extends activity {

private progressdialog pdialog;  //alert dialog manager alertdialogmanager alert = new alertdialogmanager();  //session manager sessionmanager session;  jsonparser jsonparser = new jsonparser(); edittext c_email; edittext c_password;  public static final string domain = "192.168.0.112"; //home //public static final string domain = "172.18.74.146"; //url login private static string url_login = "http://" + domain + "/ichop/login.php";  //json node names private static final string tag_success = "success"; //private static final string tag_message = "message";  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_login);      //session manager     session = new sessionmanager(getapplicationcontext());      //edit text     c_email = (edittext) findviewbyid(r.id.c_email);     c_password = (edittext) findviewbyid(r.id.c_password);      toast.maketext(getapplicationcontext(), "user login status: " + session.isloggedin(), toast.length_long).show();      //login button     button login = (button) findviewbyid(r.id.login);      //button click event     login.setonclicklistener(new view.onclicklistener() {          @override         public void onclick(view view) {             // creating new customer in background             new customerlogin().execute();         }     });  }   class customerlogin extends asynctask<string, string, string> {      @override     protected void onpreexecute() {         super.onpreexecute();         pdialog = new progressdialog(login.this);         pdialog.setmessage("logging in!");         pdialog.setindeterminate(false);         pdialog.setcancelable(true);         pdialog.show();     }      protected string doinbackground(string... args){         string email = c_email.gettext().tostring();         string password = c_password.gettext().tostring();          //building parameters         list<namevaluepair> params = new arraylist<namevaluepair>();         params.add(new basicnamevaluepair("email", email));         params.add(new basicnamevaluepair("password", password));          /**         log.d("c_email", email);         log.d("c_password", password);         **/          //getting json object         jsonobject json = jsonparser.makehttprequest(url_login, "post", params);         log.v("signup", "checkpoint 1");          //check log cat response         log.d("create response", json.tostring());         log.v("signup", "checkpoint 2");          //check success tag         try{                                                             int success = json.getint(tag_success);             //string message = json.getstring(tag_message);             //log.v("signup", "checkpoint 3");               if (success == 1) {                 session.createloginsession(email);                  intent = new intent(getapplicationcontext(), home.class);                 startactivity (i);                  finish();             }else{                 //failed login              }         } catch (jsonexception e){             e.printstacktrace();         }          return null;     }      protected void onpostexecute(string file_url){         pdialog.dismiss();     } }  @override public boolean oncreateoptionsmenu(menu menu) {     // inflate menu; adds items action bar if present.     getmenuinflater().inflate(r.menu.login, menu);     return true; }  public void signup (view view) {     intent signup = new intent (this, signup.class);     startactivity(signup); } } 

it seems calling intent , alert dialog in doinbackground, need call intent or alert dialog in onpostexceute.

try executing in onpostexecute

if (success == 1) {                 session.createloginsession(email);                  intent = new intent(getapplicationcontext(), home.class);                 startactivity (i);                  finish();             }else{                 alert.showalertdialog(login.this,"login failed", "bla bla bla", false);              } 

let me know if works.


Comments

Popular posts from this blog

Change php variable from jquery value using ajax (same page) -

Pull out data related to my apps from Android Play Store and iOS App Store -

How can I fetch data from a web server in an android application? -