Android Studio Drawing Application: Unfortunately App, has stopped -


my app continues stop , don't know why. drawing app in fragment allows user draw. beginner programmer assistance great thank you!

field fragment:

package com.example.marlon.fieldapp;  import android.app.dialogfragment; import android.content.context; import android.graphics.color; import android.media.image; import android.net.uri; import android.os.bundle; import android.app.fragment; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.imagebutton; import android.widget.linearlayout; import java.util.uuid; import android.provider.mediastore; import android.app.alertdialog; import android.app.dialog; import android.content.dialoginterface; import android.view.view.onclicklistener; import android.widget.toast;    /**  * simple {@link fragment} subclass.  * activities contain fragment must implement  * {@link field_fragment.onfragmentinteractionlistener} interface  * handle interaction events.  * use {@link field_fragment#newinstance} factory method  * create instance of fragment.  */ public class field_fragment extends fragment implements onclicklistener {     // todo: rename parameter arguments, choose names match     // fragment initialization parameters, e.g. arg_item_number     private static final string arg_param1 = "param1";     private static final string arg_param2 = "param2";      // todo: rename , change types of parameters     private string mparam1;     private string mparam2;      private drawingview drawview;     private imagebutton currpaint, drawbtn;     private float smallbrush, mediumbrush, largebrush;      private onfragmentinteractionlistener mlistener;      public field_fragment() {         // required empty public constructor     }      /**      * use factory method create new instance of      * fragment using provided parameters.      *      * @param param1 parameter 1.      * @param param2 parameter 2.      * @return new instance of fragment field_fragment.      */     // todo: rename , change types , number of parameters     public static field_fragment newinstance(string param1, string param2)     {         field_fragment fragment = new field_fragment();         bundle args = new bundle();         args.putstring(arg_param1, param1);         args.putstring(arg_param2, param2);         fragment.setarguments(args);         return fragment;     }      @override     public void oncreate(bundle savedinstancestate)     {         smallbrush = getresources().getinteger(r.integer.small_size);         mediumbrush = getresources().getinteger(r.integer.medium_size);         largebrush = getresources().getinteger(r.integer.large_size);          drawbtn = (imagebutton)getview().findviewbyid(r.id.draw_btn);         drawbtn.setonclicklistener(this);          drawview.setbrushsize(mediumbrush);          super.oncreate(savedinstancestate);         if (getarguments() != null)         {             mparam1 = getarguments().getstring(arg_param1);             mparam2 = getarguments().getstring(arg_param2);         }      }        @override     public view oncreateview(layoutinflater inflater, viewgroup container,                              bundle savedinstancestate)     {         // inflate layout fragment         drawview = (drawingview) drawview.findviewbyid(r.id.drawing);         linearlayout paintlayout = (linearlayout) getview().findviewbyid(r.id.paint_colours);         currpaint = (imagebutton)paintlayout.getchildat(0);         currpaint.setimagedrawable(getresources().getdrawable(r.drawable.paint_pressed));          return getview();     }      // todo: rename method, update argument , hook method ui event     public void onbuttonpressed(uri uri) {         if (mlistener != null) {             mlistener.onfragmentinteraction(uri);         }     }      @override     public void onattach(context context) {         super.onattach(context);         if (context instanceof onfragmentinteractionlistener) {             mlistener = (onfragmentinteractionlistener) context;         } else {             throw new runtimeexception(context.tostring()                     + " must implement onfragmentinteractionlistener");         }     }      @override     public void ondetach() {         super.ondetach();         mlistener = null;     }      /**      * interface must implemented activities contain      * fragment allow interaction in fragment communicated      * activity , potentially other fragments contained in      * activity.      * <p/>      * see android training lesson <a href=      * "http://developer.android.com/training/basics/fragments/communicating.html"      * >communicating other fragments</a> more information.      */      public void paintclicked(view view)     {         if(view!=currpaint)         {             imagebutton imgview = (imagebutton)view;             string color = view.gettag().tostring();             drawview.setcolor(color);         }     }      @override     public void onclick(view view)     { //respond clicks         if(view.getid()==r.id.draw_btn)         {             final dialog brushdialog;             brushdialog = new dialog(getactivity());             brushdialog.settitle("brush size:");              brushdialog.setcontentview(r.layout.brush_chooser);              imagebutton smallbtn = (imagebutton)brushdialog.findviewbyid(r.id.small_brush);             smallbtn.setonclicklistener(new onclicklistener() {                 @override                 public void onclick(view v) {                     drawview.setbrushsize(smallbrush);                     drawview.setlastbrushsize(smallbrush);                     brushdialog.dismiss();                 }             });              imagebutton mediumbtn = (imagebutton)brushdialog.findviewbyid(r.id.medium_brush);             mediumbtn.setonclicklistener(new onclicklistener() {                 @override                 public void onclick(view v) {                     drawview.setbrushsize(mediumbrush);                     drawview.setlastbrushsize(mediumbrush);                     brushdialog.dismiss();                 }             });              imagebutton largebtn = (imagebutton)brushdialog.findviewbyid(r.id.large_brush);             largebtn.setonclicklistener(new onclicklistener(){                 @override                 public void onclick(view v) {                     drawview.setbrushsize(largebrush);                     drawview.setlastbrushsize(largebrush);                     brushdialog.dismiss();                 }             });             brushdialog.show();         }     }      public interface onfragmentinteractionlistener     {         // todo: update argument type , name         void onfragmentinteraction(uri uri);     } } 

here's error i'm getting:

02-06 11:39:00.681 28557-28557/com.example.marlon.fieldapp e/androidruntime: fatal exception: main                                                                              process: com.example.marlon.fieldapp, pid: 28557                                                                              java.lang.runtimeexception: unable start activity componentinfo{com.example.marlon.fieldapp/com.example.marlon.fieldapp.mainactivity}: java.lang.nullpointerexception: attempt invoke virtual method 'android.view.view android.view.view.findviewbyid(int)' on null object reference                                                                                  @ android.app.activitythread.performlaunchactivity(activitythread.java:2339)                                                                                  @ android.app.activitythread.handlelaunchactivity(activitythread.java:2413)                                                                                  @ android.app.activitythread.access$800(activitythread.java:155)                                                                                  @ android.app.activitythread$h.handlemessage(activitythread.java:1317)                                                                                  @ android.os.handler.dispatchmessage(handler.java:102)                                                                                  @ android.os.looper.loop(looper.java:135)                                                                                  @ android.app.activitythread.main(activitythread.java:5343)                                                                                  @ java.lang.reflect.method.invoke(native method)                                                                                  @ java.lang.reflect.method.invoke(method.java:372)                                                                                  @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:905)                                                                                  @ com.android.internal.os.zygoteinit.main(zygoteinit.java:700)                                                                               caused by: java.lang.nullpointerexception: attempt invoke virtual method 'android.view.view android.view.view.findviewbyid(int)' on null object reference                                                                                  @ com.example.marlon.fieldapp.field_fragment.oncreate(field_fragment.java:80)                                                                                  @ android.app.fragment.performcreate(fragment.java:2031)                                                                                  @ android.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:863)                                                                                  @ android.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1067)                                                                                  @ android.app.backstackrecord.run(backstackrecord.java:834)                                                                                  @ android.app.fragmentmanagerimpl.execpendingactions(fragmentmanager.java:1454)                                                                                  @ android.app.activity.performstart(activity.java:6025)                                                                                  @ android.app.activitythread.performlaunchactivity(activitythread.java:2302)                                                                                  @ android.app.activitythread.handlelaunchactivity(activitythread.java:2413)                                                                                   @ android.app.activitythread.access$800(activitythread.java:155)                                                                                   @ android.app.activitythread$h.handlemessage(activitythread.java:1317)                                                                                   @ android.os.handler.dispatchmessage(handler.java:102)                                                                                   @ android.os.looper.loop(looper.java:135)                                                                                   @ android.app.activitythread.main(activitythread.java:5343)                                                                                   @ java.lang.reflect.method.invoke(native method)                                                                                   @ java.lang.reflect.method.invoke(method.java:372)                                                                                   @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:905)                                                                                   @ com.android.internal.os.zygoteinit.main(zygoteinit.java:700)  

in oncreateview should return inflated view.

view fragment.getview:

get root view fragment's layout (the 1 returned oncreateview(layoutinflater, viewgroup, bundle)), if provided.

at comment

// inflate layout fragment 

use provided inflater inflate layout resource. like

view fragmentview =  inflater.inflate(r.layout.frag_view, container, false); 

return fragmentview.

you should move

        drawbtn = (imagebutton)getview().findviewbyid(r.id.draw_btn); 

to oncreateview, after inflation. again, use inflated view, not getview().


Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

json - Gson().fromJson(jsonResult, Myobject.class) return values in 0's -