java - Android signup/signin -
i'm beginner android app development.so decided go simple app(signin/signup).i don't know causes error here full code.when click on signup or signin button causes "unfortunately app stopped running error". plz point out me in right direction.
mainactivity.java
package com.example.kyokesh.ams1; import android.app.activity; import android.content.intent; import android.database.cursor; import android.database.sqlite.sqlitedatabase; import android.os.bundle; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.edittext; import android.widget.toast; public class mainactivity extends activity { edittext email,password; button signup, signin; sqlitedatabase db; cursor c; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); email = (edittext) findviewbyid(r.id.etemail); password = (edittext) findviewbyid(r.id.etpassword); signin = (button) findviewbyid(r.id.bsignin); signup = (button) findviewbyid(r.id.bsignup); signup.setonclicklistener(new view.onclicklistener(){ @override public void onclick(view v) { intent intent = new intent(mainactivity.this, signup.class); startactivity(intent); } }); signin.setonclicklistener(new view.onclicklistener() { @override public void onclick(view arg0) { string s1 = email.gettext().tostring(); string s2 = password.gettext().tostring(); db = openorcreatedatabase("mydatabase.db", mode_private, null); c = db.rawquery("select name userdata password ='" + s2 + "' && email='"+s1+"'",null); if (c.getcount() == 0) { toast.maketext(getapplicationcontext(), "login successful", toast.length_short).show(); c.close(); db.close(); intent i1 = new intent(mainactivity.this, signup.class); startactivity(i1); } } }); }}
signup.java
package com.example.kyokesh.ams1; import android.app.activity; import android.content.intent; import android.database.sqlite.sqlitedatabase; import android.os.bundle;; import android.support.v7.app.appcompatactivity; import android.support.v7.widget.toolbar; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.edittext; import android.widget.toast; import java.util.objects; public class signup extends activity { edittext name,email,password,cpassword; button register; sqlitedatabase db; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_signup); name = (edittext) findviewbyid(r.id.etname); email = (edittext) findviewbyid(r.id.etemail); password = (edittext) findviewbyid(r.id.etpassword); cpassword = (edittext) findviewbyid(r.id.etcpassword); final string s1 = name.gettext().tostring(); final string s2 = email.gettext().tostring(); final string s3 = password.gettext().tostring(); final string s4 = cpassword.gettext().tostring(); register.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { db = openorcreatedatabase("mydatabse.db", mode_private, null); if (objects.equals(s1, s2)) { db.execsql("create table if not exists userdata(name varchar,email varchar,password varchar,cpassword varchar);"); db.execsql("insert userdata '" + s1 + "','" + s2 + "','" + s3 + "','" + s4 + "');"); toast.maketext(getapplicationcontext(), "sign successful", toast.length_short).show(); intent main = new intent(signup.this, mainactivity.class); } else { toast.maketext(getapplicationcontext(), "password doesn't match confirmation", toast.length_short).show(); intent intent = getintent(); finish(); startactivity(intent); } } }); } }
xml
content_main.xml
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.example.kyokesh.ams1.mainactivity" tools:showin="@layout/activity_main"> <relativelayout tools:context="com.example.kyokesh.ams.mainactivity" tools:showin="@layout/activity_main" app:layout_behavior="@string/appbar_scrolling_view_behavior" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" android:layout_centervertical="true" android:layout_centerhorizontal="true"> <button android:layout_width="176dp" android:layout_height="wrap_content" android:text="sign in" android:id="@+id/bsignin" android:layout_margintop="45dp" android:backgroundtint="#1e88e5" android:clickable="false" android:layout_below="@+id/etpassword" android:layout_centerhorizontal="true" android:nestedscrollingenabled="false" /> <edittext android:layout_width="match_parent" android:layout_height="wrap_content" android:inputtype="textemailaddress" android:ems="10" android:id="@+id/etemail" android:text="e-mail" android:layout_alignparenttop="true" android:layout_alignparentright="true" android:layout_alignparentend="true" android:layout_margintop="49dp" /> <edittext android:layout_width="match_parent" android:layout_height="wrap_content" android:inputtype="textpassword" android:ems="10" android:id="@+id/etpassword" android:text="password" android:layout_below="@+id/etemail" android:layout_alignparentright="true" android:layout_alignparentend="true" /> <button android:layout_width="176dp" android:layout_height="wrap_content" android:text="new? sign here" android:id="@+id/bsignup" android:backgroundtint="#1e88e5" android:clickable="false" android:onclick="onsignupclick" android:layout_centervertical="true" android:layout_centerhorizontal="true" /> </relativelayout> </relativelayout>
content_signup.xml
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.example.kyokesh.ams1.signup" tools:showin="@layout/activity_signup"> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:textappearance="?android:attr/textappearancelarge" android:text="name" android:id="@+id/textview" android:layout_alignparenttop="true" android:layout_alignparentleft="true" android:layout_alignparentstart="true" /> <edittext android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputtype="textpersonname" android:ems="10" android:id="@+id/etname" android:layout_alignparentend="true" android:layout_below="@+id/textview" android:layout_centerhorizontal="true" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:textappearance="?android:attr/textappearancelarge" android:text="e-mail" android:id="@+id/textview2" android:layout_alignparentstart="true" android:layout_below="@+id/etname" android:layout_centerhorizontal="true" /> <edittext android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputtype="textemailaddress" android:ems="10" android:id="@+id/etemail" android:layout_alignparentstart="true" android:layout_below="@+id/textview2" android:layout_centerhorizontal="true" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:textappearance="?android:attr/textappearancelarge" android:text="password" android:id="@+id/textview3" android:layout_alignparentstart="true" android:layout_below="@+id/etemail" android:layout_centerhorizontal="true" /> <edittext android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputtype="textpassword" android:ems="10" android:id="@+id/etpassword" android:layout_alignparentstart="true" android:layout_below="@+id/textview3" android:layout_centerhorizontal="true" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:textappearance="?android:attr/textappearancelarge" android:text="confirm password" android:id="@+id/textview4" android:layout_alignparentstart="true" android:layout_below="@+id/etpassword" android:layout_centerhorizontal="true" /> <edittext android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputtype="textpassword" android:ems="10" android:id="@+id/etcpassword" android:layout_alignparentstart="true" android:layout_below="@+id/textview4" android:layout_centerhorizontal="true" /> <button android:layout_width="176dp" android:layout_height="wrap_content" android:text="register" android:id="@+id/button" android:backgroundtint="#1e88e5" android:clickable="false" android:onclick="onsignupclick" android:layout_below="@+id/etcpassword" android:layout_centerhorizontal="true" /> </relativelayout>
logcat error log:
08-24 09:05:44.393 6017-6017/? i/art: not late-enabling -xcheck:jni (already on) 08-24 09:05:44.462 6017-6017/? i/art: late-enabling jit 08-24 09:05:44.501 6017-6017/? i/art: jit created code_cache_capacity=2mb compile_threshold=1000 08-24 09:05:44.720 6017-6017/com.example.kyokesh.ams1 w/system: classloader referenced unknown path: /data/app/com.example.kyokesh.ams1-1/lib/x86 08-24 09:05:44.987 6017-6028/com.example.kyokesh.ams1 w/art: suspending threads took: 14.435ms 08-24 09:05:44.994 6017-6028/com.example.kyokesh.ams1 i/art: background sticky concurrent mark sweep gc freed 11075(515kb) allocspace objects, 0(0b) los objects, 72% free, 682kb/2mb, paused 16.779ms total 142.291ms 08-24 09:05:45.037 6017-6039/com.example.kyokesh.ams1 d/openglrenderer: use egl_swap_behavior_preserved: true 08-24 09:05:45.093 6017-6039/com.example.kyokesh.ams1 i/openglrenderer: initialized egl, version 1.4 08-24 09:05:45.159 6017-6039/com.example.kyokesh.ams1 w/egl_emulation: eglsurfaceattrib not implemented 08-24 09:05:45.159 6017-6039/com.example.kyokesh.ams1 w/openglrenderer: failed set egl_swap_behavior on surface 0xad924be0, error=egl_success 08-24 09:05:46.282 6017-6017/com.example.kyokesh.ams1 d/androidruntime: shutting down vm 08-24 09:05:46.282 6017-6017/com.example.kyokesh.ams1 e/androidruntime: fatal exception: main process: com.example.kyokesh.ams1, pid: 6017 java.lang.runtimeexception: unable start activity componentinfo{com.example.kyokesh.ams1/com.example.kyokesh.ams1.signup}: java.lang.nullpointerexception: attempt invoke virtual method 'void android.widget.button.setonclicklistener(android.view.view$onclicklistener)' on null object reference @ android.app.activitythread.performlaunchactivity(activitythread.java:2416) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2476) @ android.app.activitythread.-wrap11(activitythread.java) @ android.app.activitythread$h.handlemessage(activitythread.java:1344) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:148) @ android.app.activitythread.main(activitythread.java:5417) @ java.lang.reflect.method.invoke(native method) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:726) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:616) caused by: java.lang.nullpointerexception: attempt invoke virtual method 'void android.widget.button.setonclicklistener(android.view.view$onclicklistener)' on null object reference @ com.example.kyokesh.ams1.signup.oncreate(signup.java:34) @ android.app.activity.performcreate(activity.java:6237) @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1107) @ android.app.activitythread.performlaunchactivity(activitythread.java:2369) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2476) @ android.app.activitythread.-wrap11(activitythread.java) @ android.app.activitythread$h.handlemessage(activitythread.java:1344) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:148) @ android.app.activitythread.main(activitythread.java:5417) @ java.lang.reflect.method.invoke(native method) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:726) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:616) 08-24 09:05:48.300 6017-6017/com.example.kyokesh.ams1 i/process: sending signal. pid: 6017 sig: 9
at least signup
activity, should getting null pointer exception since, have not initialised register
button , still calling setonclicklistener
on object. can fix adding line before calling setonclicklistener
:
register = (button) findviewbyid(r.id.button);
Comments
Post a Comment