android - App always crashes when calling onClickListerner() -


app crashes when calling savedetails() function. don't know main reason. couldn't figure out. someone, please me.

when remove savedetails() function app launches , calls contact_details layout when imagebutton clicked. when function added app crashes. log shows error on savebutton.setonclicklistener().

package com.bikram.contacts;  import android.database.cursor; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.view; import android.widget.arrayadapter; import android.widget.button; import android.widget.edittext; import android.widget.imagebutton; import android.widget.listview; import android.widget.toast;  import java.util.arraylist;   public class mainactivity extends appcompatactivity {      databasehelper databasehelper;     edittext firstname, lastname, phonenumber;     imagebutton imagebutton;     button savebutton;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);         databasehelper = new databasehelper(this);           firstname = (edittext) findviewbyid(r.id.first_name);         lastname = (edittext) findviewbyid(r.id.last_name);         phonenumber = (edittext) findviewbyid(r.id.phone_number);         imagebutton = (imagebutton) findviewbyid(r.id.imagebutton);         savebutton = (button) findviewbyid(r.id.save_button);          viewname();         addcontacts();         savedetails();      }      public void savedetails() {         savebutton.setonclicklistener(                 new view.onclicklistener() {                     @override                     public void onclick(view v) {                      }                 }         );     }      public void addcontacts() {         imagebutton.setonclicklistener(                 new view.onclicklistener() {                     @override                     public void onclick(view v) {                         setcontentview(r.layout.contact_details);                     }                 }         );     }      public void viewname() {         cursor result = databasehelper.getname();         arraylist arraylist = new arraylist();         while (result.movetonext()) {             arraylist.add(result.getstring(0));             arraylist.add(result.getstring(1));         }         arrayadapter arrayadapter = new arrayadapter(this, r.layout.text_view, arraylist);          listview listview = (listview) findviewbyid(r.id.display_full_name);         listview.setadapter(arrayadapter);     } } 

databasehelper.java

package com.bikram.contacts;  import android.content.contentvalues; import android.content.context; import android.database.cursor; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqliteopenhelper;  /**  * created sabina on 13-nov-16.  */  public class databasehelper extends sqliteopenhelper {     public static final string databasename = "contact.db";     public static final string tablename = "contact_details";     public static final string col_1 = "first name";     public static final string col_2 = "last name";     public static final string col_3 = "mobile number";      public databasehelper(context context) {         super(context, databasename, null, 4);     }      @override     public void oncreate(sqlitedatabase db) {         db.execsql("create table " + tablename + "(first name text, last name text, mobile number number not null primary key);");     }      @override     public void onupgrade(sqlitedatabase db, int oldversion, int newversion) {         db.execsql("drop table if exists" + tablename);         oncreate(db);     }      public cursor getname() {         sqlitedatabase db = this.getwritabledatabase();         string query = "select first name, last name " + tablename;         cursor result = db.rawquery(query, null);         return result;     }      public boolean addcontactdetails(string firstname, string lastname, string phonenumber){         sqlitedatabase db = this.getwritabledatabase();         contentvalues contentvalues = new contentvalues();         contentvalues.put(col_1, firstname);         contentvalues.put(col_2, lastname);         contentvalues.put(col_3, phonenumber);          long result = db.insert(tablename, null, contentvalues);          if(result == -1)             return false;         else             return true;     } } 

log android monitor

11-13 18:27:49.343 2108-2108/com.bikram.contacts w/dalvikvm: threadid=1: thread exiting uncaught exception (group=0x41fd7ce0) 11-13 18:27:49.343 2108-2108/com.bikram.contacts w/dalvikvm: threadid=1: uncaught exception occurred 11-13 18:27:49.344 2108-2108/com.bikram.contacts w/system.err: java.lang.runtimeexception: unable start activity componentinfo{com.bikram.contacts/com.bikram.contacts.mainactivity}: java.lang.nullpointerexception 11-13 18:27:49.345 2108-2108/com.bikram.contacts w/system.err:     @ android.app.activitythread.performlaunchactivity(activitythread.java:2347) 11-13 18:27:49.345 2108-2108/com.bikram.contacts w/system.err:     @ android.app.activitythread.handlelaunchactivity(activitythread.java:2399) 11-13 18:27:49.345 2108-2108/com.bikram.contacts w/system.err:     @ android.app.activitythread.access$800(activitythread.java:160) 11-13 18:27:49.345 2108-2108/com.bikram.contacts w/system.err:     @ android.app.activitythread$h.handlemessage(activitythread.java:1330) 11-13 18:27:49.346 2108-2108/com.bikram.contacts w/system.err:     @ android.os.handler.dispatchmessage(handler.java:110) 11-13 18:27:49.346 2108-2108/com.bikram.contacts w/system.err:     @ android.os.looper.loop(looper.java:193) 11-13 18:27:49.346 2108-2108/com.bikram.contacts w/system.err:     @ android.app.activitythread.main(activitythread.java:5330) 11-13 18:27:49.346 2108-2108/com.bikram.contacts w/system.err:     @ java.lang.reflect.method.invokenative(native method) 11-13 18:27:49.346 2108-2108/com.bikram.contacts w/system.err:     @ java.lang.reflect.method.invoke(method.java:515) 11-13 18:27:49.346 2108-2108/com.bikram.contacts w/system.err:     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:829) 11-13 18:27:49.347 2108-2108/com.bikram.contacts w/system.err:     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:645) 11-13 18:27:49.347 2108-2108/com.bikram.contacts w/system.err:     @ dalvik.system.nativestart.main(native method) 11-13 18:27:49.347 2108-2108/com.bikram.contacts w/system.err: caused by: java.lang.nullpointerexception 11-13 18:27:49.348 2108-2108/com.bikram.contacts w/system.err:     @ com.bikram.contacts.mainactivity.savedetails(mainactivity.java:44) 11-13 18:27:49.348 2108-2108/com.bikram.contacts w/system.err:     @ com.bikram.contacts.mainactivity.oncreate(mainactivity.java:39) 11-13 18:27:49.348 2108-2108/com.bikram.contacts w/system.err:     @ android.app.activity.performcreate(activity.java:5264) 11-13 18:27:49.348 2108-2108/com.bikram.contacts w/system.err:     @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1088) 11-13 18:27:49.348 2108-2108/com.bikram.contacts w/system.err:     @ android.app.activitythread.performlaunchactivity(activitythread.java:2311) 11-13 18:27:49.348 2108-2108/com.bikram.contacts w/system.err:  ... 11 more 11-13 18:27:49.348 2108-2108/com.bikram.contacts w/dalvikvm: threadid=1: calling uncaughtexceptionhandler 11-13 18:27:49.350 2108-2108/com.bikram.contacts e/androidruntime: fatal exception: main                                                                    process: com.bikram.contacts, pid: 2108                                                                    java.lang.runtimeexception: unable start activity componentinfo{com.bikram.contacts/com.bikram.contacts.mainactivity}: java.lang.nullpointerexception                                                                        @ android.app.activitythread.performlaunchactivity(activitythread.java:2347)                                                                        @ android.app.activitythread.handlelaunchactivity(activitythread.java:2399)                                                                        @ android.app.activitythread.access$800(activitythread.java:160)                                                                        @ android.app.activitythread$h.handlemessage(activitythread.java:1330)                                                                        @ android.os.handler.dispatchmessage(handler.java:110)                                                                        @ android.os.looper.loop(looper.java:193)                                                                        @ android.app.activitythread.main(activitythread.java:5330)                                                                        @ java.lang.reflect.method.invokenative(native method)                                                                        @ java.lang.reflect.method.invoke(method.java:515)                                                                        @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:829)                                                                        @ com.android.internal.os.zygoteinit.main(zygoteinit.java:645)                                                                        @ dalvik.system.nativestart.main(native method)                                                                     caused by: java.lang.nullpointerexception                                                                        @ com.bikram.contacts.mainactivity.savedetails(mainactivity.java:44)                                                                        @ com.bikram.contacts.mainactivity.oncreate(mainactivity.java:39)                                                                        @ android.app.activity.performcreate(activity.java:5264)                                                                        @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1088)                                                                        @ android.app.activitythread.performlaunchactivity(activitythread.java:2311)                                                                        @ android.app.activitythread.handlelaunchactivity(activitythread.java:2399)                                                                         @ android.app.activitythread.access$800(activitythread.java:160)                                                                         @ android.app.activitythread$h.handlemessage(activitythread.java:1330)                                                                         @ android.os.handler.dispatchmessage(handler.java:110)                                                                         @ android.os.looper.loop(looper.java:193)                                                                         @ android.app.activitythread.main(activitythread.java:5330)                                                                         @ java.lang.reflect.method.invokenative(native method)                                                                         @ java.lang.reflect.method.invoke(method.java:515)                                                                         @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:829)                                                                         @ com.android.internal.os.zygoteinit.main(zygoteinit.java:645)                                                                         @ dalvik.system.nativestart.main(native method)  11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5: suspendall starting 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5:   threadid=1 status=7 sc=1 dc=0 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5:   threadid=11 status=7 sc=1 dc=0 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5:   threadid=10 status=7 sc=1 dc=0 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5:   threadid=9 status=7 sc=1 dc=0 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5:   threadid=8 status=4 sc=1 dc=0 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5:   threadid=7 status=4 sc=1 dc=0 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5:   threadid=6 status=4 sc=1 dc=0 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5:   threadid=4 status=8 sc=1 dc=0 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5:   threadid=3 status=8 sc=1 dc=0 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5:   threadid=2 status=8 sc=1 dc=0 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5: suspendall complete : 1 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5: resumeall starting 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5: resumeall waking others 11-13 18:27:54.661 2108-2116/com.bikram.contacts d/dalvikvm: threadid=5: resumeall complete 

activity_main.xml

<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">      <listview         android:id="@+id/display_full_name"         android:layout_width="match_parent"         android:layout_height="wrap_content" />      <imagebutton         android:id="@+id/imagebutton"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_alignparentbottom="true"         android:layout_alignparentright="true"         android:layout_marginbottom="35dp"         android:layout_marginright="25dp"         android:padding="5dp"         app:srccompat="@mipmap/add_button" />  </relativelayout> 

contact_details.xml

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical">      <textview         android:id="@+id/textview2"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:text="new contact" />      <edittext         android:id="@+id/first_name"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:ems="10"         android:inputtype="textpersonname" />      <edittext         android:id="@+id/last_name"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:ems="10"         android:inputtype="textpersonname" />      <edittext         android:id="@+id/phone_number"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:ems="10"         android:inputtype="phone" />      <button         android:id="@+id/save_button"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:elevation="12dp"         android:text="save" /> </linearlayout> 

text_view.xml

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical" android:layout_width="match_parent"     android:layout_height="match_parent">     <textview         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:id = "@+id/textview"/>  </linearlayout> 

you have include contact_details in activity_main.xml. reason has been explained @clownba0t above.


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -