java - Android app won't stop crashing when I run it, trouble with ParseInt -


i making simple app count calories burned while exercising. however, crashes when try turn edittext int value. beginner @ java , android studio, please don't hesitate use detailed explanations. in advance.

import android.support.v7.widget.appcompattextview; import android.content.context; import android.net.uri; import android.os.bundle; import android.support.v4.app.fragment; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.arrayadapter; import android.widget.edittext; import android.widget.relativelayout;  import android.widget.spinner;  import android.widget.textview;  import android.widget.toast;     public class firstfragment extends fragment implements adapterview.onitemselectedlistener{      // store instance variables     private string title;     private int page;     edittext countcal;     edittext weight;     int cal;      spinner spinner;      // newinstance constructor creating fragment arguments     public static firstfragment newinstance(int page, string title) {         firstfragment fragmentfirst = new firstfragment();         bundle args = new bundle();         args.putint("someint", page);         args.putstring("sometitle", title);         fragmentfirst.setarguments(args);         return fragmentfirst;     }      // store instance variables based on arguments passed     @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         page = getarguments().getint("someint", 0);         title = getarguments().getstring("sometitle");       }      // inflate view fragment based on layout xml     @override     public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {          view view = inflater.inflate(r.layout.fragment_first, container, false);         countcal =(edittext)view.findviewbyid(r.id.edittext);         weight = (edittext)view.findviewbyid(r.id.weight);          spinner spinner = (spinner)view.findviewbyid(r.id.spinner);         arrayadapter<?> adapter = arrayadapter.createfromresource(getactivity(), r.array.exercises, android.r.layout.simple_spinner_item);         adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item);         spinner.setadapter(adapter);         spinner.setonitemselectedlistener(this);         return view;     }      @override     public void onitemselected(adapterview<?> parent, view view, int i, long l) {         if (countcal.gettext().tostring().trim().length() == 0) {             if (weight.gettext().tostring().trim().length() == 0) {              }         } else {            if (parent.getitematposition(i).tostring() == "jogging") {                toast.maketext(parent.getcontext(), (int) (0.0175 * 7 * integer.parseint(weight.gettext().tostring()) * integer.parseint(weight.gettext().tostring())), toast.length_short).show();            } else if (parent.getitematposition(i).tostring() == "walking") {                toast.maketext(parent.getcontext(), (int) (0.0175 * 3.5 * integer.parseint(weight.gettext().tostring()) * integer.parseint(weight.gettext().tostring())), toast.length_short).show();            } else if (parent.getitematposition(i).tostring() == "free weights") {                toast.maketext(parent.getcontext(), (int) (0.0175 * 4.5 * integer.parseint(weight.gettext().tostring()) * integer.parseint(weight.gettext().tostring())), toast.length_short).show();            }          toast.maketext(parent.getcontext(), "enter values!", toast.length_short).show();         }       }      @override     public void onnothingselected(adapterview<?> adapterview) {      } }              } 

here's error log

08-08 10:53:46.211 31221-31221/stefdude1999.fitness e/androidruntime: fatal exception: main process: stefdude1999.fitness, pid: 31221 java.lang.classcastexception: android.support.v7.widget.appcompattextview cannot cast android.widget.edittext   @ stefdude1999.fitness.firstfragment.oncreateview(firstfragment.java:56)   @ android.support.v4.app.fragment.performcreateview(fragment.java:2074)   @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1104)   @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1286)   @ android.support.v4.app.backstackrecord.run(backstackrecord.java:758)   @ android.support.v4.app.fragmentmanagerimpl.execsingleaction(fragmentmanager.java:1632)   @ android.support.v4.app.backstackrecord.commitnowallowingstateloss(backstackrecord.java:637)   @ android.support.v4.app.fragmentpageradapter.finishupdate(fragmentpageradapter.java:143)   @ android.support.v4.view.viewpager.populate(viewpager.java:1237)   @ android.support.v4.view.viewpager.populate(viewpager.java:1085)   @ android.support.v4.view.viewpager.onmeasure(viewpager.java:1611)   @ android.view.view.measure(view.java:18794)   @ android.widget.relativelayout.measurechildhorizontal(relativelayout.java:715)   @ android.widget.relativelayout.onmeasure(relativelayout.java:461)   @ android.view.view.measure(view.java:18794)   @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5951)   @ android.widget.framelayout.onmeasure(framelayout.java:194)   @ android.support.v7.widget.contentframelayout.onmeasure(contentframelayout.java:135)   @ android.view.view.measure(view.java:18794)   @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5951)   @ android.support.v7.widget.actionbaroverlaylayout.onmeasure(actionbaroverlaylayout.java:391)   @ android.view.view.measure(view.java:18794)   @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5951)   @ android.widget.framelayout.onmeasure(framelayout.java:194)   @ android.view.view.measure(view.java:18794)   @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5951)   @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1465)   @ android.widget.linearlayout.measurevertical(linearlayout.java:748)   @ android.widget.linearlayout.onmeasure(linearlayout.java:630)   @ android.view.view.measure(view.java:18794)   @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5951)   @ android.widget.framelayout.onmeasure(framelayout.java:194)   @ com.android.internal.policy.phonewindow$decorview.onmeasure(phonewindow.java:2643)   @ android.view.view.measure(view.java:18794)   @ android.view.viewrootimpl.performmeasure(viewrootimpl.java:2100)   @ android.view.viewrootimpl.measurehierarchy(viewrootimpl.java:1216)   @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1452)   @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:1107)   @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:6013)   @ android.view.choreographer$callbackrecord.run(choreographer.java:858)   @ android.view.choreographer.docallbacks(choreographer.java:670)   @ android.view.choreographer.doframe(choreographer.java:606)   @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:844)   @ 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) 

here xml layout

<relativelayout 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" tools:context="stefdude1999.fitness.firstfragment" android:id="@+id/content">  <!-- todo: update blank fragment layout -->  <spinner     android:id="@+id/spinner"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:layout_gravity="right|top"     android:layout_alignparenttop="true"     android:layout_alignparentright="true"     android:layout_alignparentend="true" />  <edittext     android:layout_width="113dp"     android:layout_height="wrap_content"     android:inputtype="number"     android:ems="10"     android:id="@+id/edittext"     android:layout_gravity="left|top"     android:layout_alignparenttop="true"     android:layout_alignparentleft="true"     android:layout_alignparentstart="true" />  <textview     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="enter minutes"     android:id="@+id/textview"     android:layout_gravity="left|top"     android:layout_below="@+id/edittext"     android:layout_alignparentleft="true"     android:layout_alignparentstart="true" />  <edittext     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:inputtype="number"     android:ems="10"     android:id="@+id/edittext2"     android:layout_below="@+id/textview"     android:layout_alignparentleft="true"     android:layout_alignparentstart="true"     android:layout_alignright="@+id/edittext"     android:layout_alignend="@+id/edittext" />  <textview     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="enter weight (kg)"     android:id="@+id/weight"     android:layout_below="@+id/edittext2"     android:layout_alignparentleft="true"     android:layout_alignparentstart="true" /> 

i'm not sure because haven't shown xml layouts, either countcal or weight not edittext. 1 or both of them appcompattextview. textview supports older versions of android.

start importing android.widget.textview try changing cast of them 1 @ time. try:

weight = (textview) view.findviewbyid(r.id.weight); 

and if doesn't work, switch original , try:

countcal = (textview) view.findviewbyid(r.id.edittext); 

if doesn't work, try casting both of them textview.

if still doesn't work, try same method import android.support.v7.widget.appcompattextview , cast them appcompattextview. hope helps!

edit:

got it! in xml layout says widget r.id.weight textview!

if cast weight textview , keep other edittext, should work!

weight = (textview) view.findviewbyid(r.id.weight); 

Comments