java - When I Click the button,my application stops unexpectedly -


if leave of text boxes empty , click button app stops unexpectedly,i need calculate sum assigning unfilled text boxes 0 , calculate sum.please provide solutions

package com.sabari.myapplication;  import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.text.inputtype; import android.text.textutils; import android.view.view; import android.widget.button; import android.widget.edittext; import android.widget.textview; import android.text.editable;  public class mainactivity extends appcompatactivity {      textview tv1;     textview tv2;     textview tv3;     textview tv4;     textview tv5;     textview tv6;     textview tv7;     textview tv8;     textview tv10;     edittext et1;     edittext et2;     edittext et3;     edittext et4;     edittext et5;     edittext et6;     edittext et7;     edittext et8;     button b1;     @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          tv1 = (textview)findviewbyid(r.id.textview);         tv2 = (textview)findviewbyid(r.id.textview2);         tv3 = (textview)findviewbyid(r.id.textview3);         tv4 = (textview)findviewbyid(r.id.textview4);         tv5 = (textview)findviewbyid(r.id.textview5);         tv6 = (textview)findviewbyid(r.id.textview6);         tv7 = (textview)findviewbyid(r.id.textview7);         tv8 = (textview)findviewbyid(r.id.textview8);                b1=(button)findviewbyid(r.id.button);           b1.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                  et1 = (edittext)findviewbyid(r.id.edittext);                 et2 = (edittext)findviewbyid(r.id.edittext2);                 et3 = (edittext)findviewbyid(r.id.edittext3);                 et4 = (edittext)findviewbyid(r.id.edittext4);                 et5 = (edittext)findviewbyid(r.id.edittext5);                 et6 = (edittext)findviewbyid(r.id.edittext6);                 et7 = (edittext)findviewbyid(r.id.edittext7);                 et8 = (edittext)findviewbyid(r.id.edittext8);                   tv10 = (textview)findviewbyid(r.id.textview10);                 int n;                         double no1,no2,no3,no4,no5,no6,no7,no8;                       no1 = double.parsedouble(et1.gettext().tostring());                      no2 = double.parsedouble(et2.gettext().tostring());                      no3 = double.parsedouble(et3.gettext().tostring());                      no4 = double.parsedouble(et4.gettext().tostring());                      no5 = double.parsedouble(et5.gettext().tostring());                      no6 = double.parsedouble(et6.gettext().tostring());                      no7 = double.parsedouble(et7.gettext().tostring());                      no8 = double.parsedouble(et8.gettext().tostring());                         if (no2 <= 0||textutils.isempty(et2.gettext().tostring())) {                          no2=0;                          n = 1;                      } else if (no3 <= 0||textutils.isempty(et3.gettext())) {                          no3=0;                          n = 2;                      } else if (no4 <= 0||textutils.isempty(et4.gettext())) {                          no4=0;                          n = 3;                      } else if (no5 <= 0||textutils.isempty(et5.gettext())) {                          no5=0;                          n = 4;                      } else if (no6 <= 0||textutils.isempty(et6.gettext())) {                          no6=0;                          n = 5;                      } else if (no7 <= 0||textutils.isempty(et7.gettext())) {                          no7=0;                          n = 6;                      } else if (no8 <= 0||textutils.isempty(et8.gettext())) {                          no8=0;                          n = 7;                      } else {                          n = 8;                      }                  double   res=0;                      res = (no1+no2+no3+no4+no5+no6+no7+no8)/n;                 tv10.settext(""+res);              }          });           }        } 

here xml

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical"     android:paddingbottom="@dimen/activity_vertical_margin"     android:paddingleft="@dimen/activity_horizontal_margin"     android:paddingright="@dimen/activity_horizontal_margin"     android:paddingtop="@dimen/activity_vertical_margin"     tools:context="com.sabari.myapplication.mainactivity">      <scrollview     android:layout_width="fill_parent"     android:layout_height="fill_parent">     <linearlayout         android:orientation="vertical"         android:layout_width="fill_parent"         android:layout_height="fill_parent">          <textview             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:textappearance="?android:attr/textappearancesmall"             android:text="enter 1st semester gpa"             android:id="@+id/textview" />          <edittext             android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:inputtype="numberdecimal"             android:ems="10"             android:id="@+id/edittext" />          <textview             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:textappearance="?android:attr/textappearancesmall"             android:text="enter 2nd semester gpa"             android:id="@+id/textview2" />          <edittext             android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:inputtype="numberdecimal"             android:ems="10"             android:id="@+id/edittext2" />          <textview             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:textappearance="?android:attr/textappearancesmall"             android:text="enter 3rd semester gpa"             android:id="@+id/textview3" />          <edittext             android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:inputtype="numberdecimal"             android:ems="10"             android:id="@+id/edittext3"             android:layout_gravity="center_horizontal" />          <textview             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:textappearance="?android:attr/textappearancesmall"             android:text="enter 4th semester gpa"             android:id="@+id/textview4" />          <edittext             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:inputtype="numberdecimal"             android:ems="10"             android:id="@+id/edittext4" />          <textview             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:textappearance="?android:attr/textappearancesmall"             android:text="enter 5th semester gpa"             android:id="@+id/textview5" />          <edittext             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:inputtype="numberdecimal"             android:ems="10"             android:id="@+id/edittext5" />          <textview             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:textappearance="?android:attr/textappearancesmall"             android:text="enter 6th semester gpa"             android:id="@+id/textview6" />          <edittext             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:inputtype="numberdecimal"             android:ems="10"             android:id="@+id/edittext6" />          <textview             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:textappearance="?android:attr/textappearancesmall"             android:text="enter 7th semester gpa"             android:id="@+id/textview7" />          <edittext             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:inputtype="numberdecimal"             android:ems="10"             android:id="@+id/edittext7"             android:layout_gravity="center_horizontal" />          <textview             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:textappearance="?android:attr/textappearancesmall"             android:text="enter 8th semester gpa"             android:id="@+id/textview8" />          <edittext             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:inputtype="numberdecimal"             android:ems="10"             android:id="@+id/edittext8"             android:layout_gravity="center_horizontal" />          <button             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:text="new button"             android:id="@+id/button"             android:layout_gravity="center_horizontal" />          <textview             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:text="new text"             android:id="@+id/textview10" />     </linearlayout> </scrollview>  </linearlayout> 

here logcat

08-01 23:11:06.724 15049-15049/com.sabari.myapplication i/art: not late-enabling -xcheck:jni (already on) 08-01 23:11:07.906 15049-15049/com.sabari.myapplication w/system: classloader referenced unknown path: /data/app/com.sabari.myapplication-1/lib/x86 08-01 23:11:15.089 15049-15049/com.sabari.myapplication w/system: classloader referenced unknown path: /data/app/com.sabari.myapplication-1/lib/x86 08-01 23:11:16.037 15049-15049/com.sabari.myapplication w/art: before android 4.1, method android.graphics.porterduffcolorfilter android.support.graphics.drawable.vectordrawablecompat.updatetintfilter(android.graphics.porterduffcolorfilter, android.content.res.colorstatelist, android.graphics.porterduff$mode) have incorrectly overridden package-private method in android.graphics.drawable.drawable 08-01 23:11:16.079 15049-15055/com.sabari.myapplication w/art: suspending threads took: 6.289ms 08-01 23:11:16.254 15049-15100/com.sabari.myapplication d/openglrenderer: use egl_swap_behavior_preserved: true                                                                            [ 08-01 23:11:16.333 15049:15049 d/         ]                                                                           hostconnection::get() new host connection established 0xaa9a85f0, tid 15049 08-01 23:11:16.825 15049-15100/com.sabari.myapplication i/openglrenderer: initialized egl, version 1.4 08-01 23:11:17.577 15049-15100/com.sabari.myapplication w/egl_emulation: eglsurfaceattrib not implemented 08-01 23:11:17.577 15049-15100/com.sabari.myapplication w/openglrenderer: failed set egl_swap_behavior on surface 0xae63fc40, error=egl_success 08-01 23:11:17.874 15049-15049/com.sabari.myapplication i/choreographer: skipped 66 frames!  application may doing work on main thread. 08-01 23:11:19.488 15049-15049/com.sabari.myapplication i/choreographer: skipped 70 frames!  application may doing work on main thread. 08-01 23:11:41.841 15049-15049/com.sabari.myapplication d/androidruntime: shutting down vm 08-01 23:11:41.848 15049-15049/com.sabari.myapplication e/androidruntime: fatal exception: main                                                                           process: com.sabari.myapplication, pid: 15049                                                                           java.lang.numberformatexception: invalid double: ""                                                                               @ java.lang.stringtoreal.invalidreal(stringtoreal.java:63)                                                                               @ java.lang.stringtoreal.parsedouble(stringtoreal.java:267)                                                                               @ java.lang.double.parsedouble(double.java:301)                                                                               @ com.sabari.myapplication.mainactivity$1.onclick(mainactivity.java:83)                                                                               @ android.view.view.performclick(view.java:5198)                                                                               @ android.view.view$performclick.run(view.java:21147)                                                                               @ android.os.handler.handlecallback(handler.java:739)                                                                               @ android.os.handler.dispatchmessage(handler.java:95)                                                                               @ 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-01 23:11:47.178 15049-15049/com.sabari.myapplication i/process: sending signal. pid: 15049 sig: 9 08-01 23:31:19.040 15155-15155/com.sabari.myapplication w/system: classloader referenced unknown path: /data/app/com.sabari.myapplication-1/lib/x86 08-01 23:31:21.349 15155-15155/com.sabari.myapplication w/system: classloader referenced unknown path: /data/app/com.sabari.myapplication-1/lib/x86 08-01 23:31:21.417 15155-15155/com.sabari.myapplication w/art: before android 4.1, method android.graphics.porterduffcolorfilter android.support.graphics.drawable.vectordrawablecompat.updatetintfilter(android.graphics.porterduffcolorfilter, android.content.res.colorstatelist, android.graphics.porterduff$mode) have incorrectly overridden package-private method in android.graphics.drawable.drawable 08-01 23:31:21.471 15155-15209/com.sabari.myapplication d/openglrenderer: use egl_swap_behavior_preserved: true                                                                            [ 08-01 23:31:21.474 15155:15155 d/         ]                                                                           hostconnection::get() new host connection established 0xad17f430, tid 15155                                                                             [ 08-01 23:31:21.516 15155:15209 d/         ]                                                                           hostconnection::get() new host connection established 0xad17f6d0, tid 15209 08-01 23:31:21.522 15155-15209/com.sabari.myapplication i/openglrenderer: initialized egl, version 1.4 08-01 23:31:21.599 15155-15209/com.sabari.myapplication w/egl_emulation: eglsurfaceattrib not implemented 08-01 23:31:21.599 15155-15209/com.sabari.myapplication w/openglrenderer: failed set egl_swap_behavior on surface 0xaaabbd00, error=egl_success 08-01 23:31:37.374 15155-15155/com.sabari.myapplication d/androidruntime: shutting down vm 08-01 23:31:37.375 15155-15155/com.sabari.myapplication e/androidruntime: fatal exception: main                                                                           process: com.sabari.myapplication, pid: 15155                                                                           java.lang.numberformatexception: invalid double: ""                                                                               @ java.lang.stringtoreal.invalidreal(stringtoreal.java:63)                                                                               @ java.lang.stringtoreal.parsedouble(stringtoreal.java:267)                                                                               @ java.lang.double.parsedouble(double.java:301)                                                                               @ com.sabari.myapplication.mainactivity$1.onclick(mainactivity.java:83)                                                                               @ android.view.view.performclick(view.java:5198)                                                                               @ android.view.view$performclick.run(view.java:21147)                                                                               @ android.os.handler.handlecallback(handler.java:739)                                                                               @ android.os.handler.dispatchmessage(handler.java:95)                                                                               @ 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-01 23:31:48.516 15155-15155/com.sabari.myapplication i/process: sending signal. pid: 15155 sig: 9 

when have empty editexts said in question, lines:

no1 = double.parsedouble(et1.gettext().tostring()); .... 

will throw java.lang.numberformatexception uncaught. need put them in try-catch block. also, refactor code. if in android studio press ctrl+alt+l rearrange code.


Comments