android - Getting a null pointer exception in logcat when using radiobutton.getText() -
in android app using 2 radiobuttons.
one of them selected , value stored in database rdbbut.gettext()
throwing null pointer exception in onclick
method here:
checklogin(email, password, rdbbut.gettext().tostring())
my code:
@override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_login); inputemail = (edittext) findviewbyid(r.id.email); inputpassword = (edittext) findviewbyid(r.id.password); rggrp = (radiogroup) findviewbyid(r.id.radiogroup); rb1 = (radiobutton) findviewbyid(r.id.radiobutton1); rb2 = (radiobutton) findviewbyid(r.id.radiobutton2); btnlogin = (button) findviewbyid(r.id.btnlogin); btnlinktoregister = (button) findviewbyid(r.id.btnlinktoregisterscreen); final int selectedid = rggrp.getcheckedradiobuttonid(); // progress dialog pdialog = new progressdialog(this); pdialog.setcancelable(false); // session manager session = new sessionmanager(getapplicationcontext()); // check if user logged in or not if (session.isloggedin()) { // user logged in. take him main activity intent intent = new intent(loginactivity.this, mainactivity.class); startactivity(intent); finish(); } // login button click event btnlogin.setonclicklistener(new view.onclicklistener() { public void onclick(view view) { string email = inputemail.gettext().tostring(); string password = inputpassword.gettext().tostring(); rdbbut = (radiobutton) findviewbyid(selectedid); // check empty data in form if (email.trim().length() > 0 && password.trim().length() > 0) { // login user checklogin(email, password, rdbbut.gettext().tostring()); } else { // prompt user enter credentials toast.maketext(getapplicationcontext(), "please enter credentials!", toast.length_long) .show(); } } }); // link register screen btnlinktoregister.setonclicklistener(new view.onclicklistener() { public void onclick(view view) { intent = new intent(getapplicationcontext(), registeractivity.class); startactivity(i); finish(); } }); } /** * function verify login details in mysql db * */ private void checklogin(final string email, final string password, final charsequence charsequence) { // tag used cancel request string tag_string_req = "req_login"; pdialog.setmessage("logging in ..."); showdialog(); stringrequest strreq = new stringrequest(method.post, appconfig.url_register, new response.listener<string>() { @override public void onresponse(string response) { log.d(tag, "login response: " + response.tostring()); hidedialog(); try { jsonobject jobj = new jsonobject(response); boolean error = jobj.getboolean("error"); // check error node in json if (!error) { // user logged in // create login session session.setlogin(true); // launch main activity intent intent = new intent(loginactivity.this, mainactivity.class); startactivity(intent); finish(); } else { // error in login. error message string errormsg = jobj.getstring("error_msg"); toast.maketext(getapplicationcontext(), errormsg, toast.length_long).show(); } } catch (jsonexception e) { // json error e.printstacktrace(); } } }, new response.errorlistener() { @override public void onerrorresponse(volleyerror error) { log.e(tag, "login error: " + error.getmessage()); toast.maketext(getapplicationcontext(), error.getmessage(), toast.length_long).show(); hidedialog(); } }) { @override protected map<string, string> getparams() { // posting parameters login url map<string, string> params = new hashmap<string, string>(); params.put("tag", "login"); params.put("email", email); params.put("password", password); params.put("type", (string) charsequence); return params; } }; // adding request request queue appcontroller.getinstance().addtorequestqueue(strreq, tag_string_req); } private void showdialog() { if (!pdialog.isshowing()) pdialog.show(); } private void hidedialog() { if (pdialog.isshowing()) pdialog.dismiss(); }
logcat :
06-02 23:36:55.638: d/androidruntime(1074): shutting down vm 06-02 23:36:55.638: w/dalvikvm(1074): threadid=1: thread exiting uncaught exception (group=0x40a13300) 06-02 23:36:55.687: e/androidruntime(1074): fatal exception: main 06-02 23:36:55.687: e/androidruntime(1074): java.lang.nullpointerexception 06-02 23:36:55.687: e/androidruntime(1074): @ com.kirti.login_screen.loginactivity$1.onclick(loginactivity.java:99) 06-02 23:36:55.687: e/androidruntime(1074): @ android.view.view.performclick(view.java:4084) 06-02 23:36:55.687: e/androidruntime(1074): @ android.view.view$performclick.run(view.java:16966) 06-02 23:36:55.687: e/androidruntime(1074): @ android.os.handler.handlecallback(handler.java:615) 06-02 23:36:55.687: e/androidruntime(1074): @ android.os.handler.dispatchmessage(handler.java:92) 06-02 23:36:55.687: e/androidruntime(1074): @ android.os.looper.loop(looper.java:137) 06-02 23:36:55.687: e/androidruntime(1074): @ android.app.activitythread.main(activitythread.java:4745) 06-02 23:36:55.687: e/androidruntime(1074): @ java.lang.reflect.method.invokenative(native method) 06-02 23:36:55.687: e/androidruntime(1074): @ java.lang.reflect.method.invoke(method.java:511) 06-02 23:36:55.687: e/androidruntime(1074): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:786) 06-02 23:36:55.687: e/androidruntime(1074): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:553) 06-02 23:36:55.687: e/androidruntime(1074): @ dalvik.system.nativestart.main(native method) 06-02 23:36:58.688: i/process(1074): sending signal. pid: 1074 sig: 9
my login.xml file:
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/bg_login" android:gravity="center" android:orientation="vertical" android:padding="10dp" > <linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:orientation="vertical" android:paddingleft="20dp" android:paddingright="20dp" > <edittext android:id="@+id/email" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginbottom="10dp" android:background="@color/white" android:hint="@string/hint_email" android:inputtype="textemailaddress" android:padding="10dp" android:singleline="true" android:textcolor="@color/input_login" android:textcolorhint="@color/input_login_hint" /> <edittext android:id="@+id/password" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginbottom="10dp" android:background="@color/white" android:hint="@string/hint_password" android:inputtype="textpassword" android:padding="10dp" android:singleline="true" android:textcolor="@color/input_login" android:textcolorhint="@color/input_login_hint" /> <!-- login button --> <radiogroup android:layout_width="fill_parent" android:layout_height="80dp" android:layout_margintop="20dp" android:weightsum="1" android:id="@+id/radiogroup"> <radiobutton android:id="@+id/radiobutton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textstyle="bold" android:padding="10dip" android:text="@string/owner" /> <radiobutton android:id="@+id/radiobutton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textstyle="bold" android:padding="10dip" android:text="@string/bikers" /> </radiogroup> <button android:id="@+id/btnlogin" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="20dip" android:background="@color/btn_login_bg" android:text="@string/btn_login" android:textcolor="@color/btn_login" /> <!-- link login screen --> <button android:id="@+id/btnlinktoregisterscreen" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="40dip" android:background="@null" android:text="@string/btn_link_to_register" android:textallcaps="false" android:textcolor="@color/white" android:textsize="15sp" /> </linearlayout> </linearlayout>
change
rdbbut = (radiobutton) findviewbyid(selectedid);
to
rdbbut = (radiobutton) mainactivity.this.findviewbyid(selectedid);
Comments
Post a Comment