android - The application crashes in SetcontentView (My Activity), which uses my class extends Button -


i created class sapper button extends button, , buttons of type in layout . in desiner window see:

castom view supperbutton not using 2- or 3- argument. view constructors. xml attributes not work.  

and app crashed after starting of layout @ setcontentview(r.layout.activity_game);. why , how fix it? here beginning of activity:

package com.example.helen.mynewgamesapper;  import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view; import android.widget.button; import android.widget.textview;  public class gameactivity extends activity implements view.onclicklistener {       int numbombs;     button[][] fields;       @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_game);         textview numbombtext = (textview) findviewbyid(r.id.numbombtext);          intent intent = getintent();         numbombs = intent.getintextra("numbombs", 10);           numbombtext.settext("number of bombs is: " + numbombs); 

my layout:

<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     >     <linearlayout         android:id="@+id/numbombs"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:layout_centervertical="true"         android:weightsum="1.0"         android:paddingtop="5pt"         android:paddingbottom="5pt"         android:background="@android:color/background_dark"         android:layout_alignparenttop="true">           <textview             android:id="@+id/numbombtext"             android:layout_margintop="30dp"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_gravity="center_horizontal"             android:text="@string/test"             android:textstyle="bold"             android:textsize="12sp">         </textview>      </linearlayout>       <linearlayout         android:layout_below="@id/numbombs"         android:id="@+id/lin123"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:layout_centervertical="true"          android:paddingtop="5pt"         android:paddingbottom="5pt"         android:weightsum="1.0">         <com.example.helen.mynewgamesapper.sapperbutton android:layout_width="0dp"             android:id="@+id/btn1"             android:layout_height="wrap_content"             android:layout_weight="0.1"             android:background="#f1f1c8"             android:textcolor="#00ecfd"             android:gravity="center"             />         <com.example.helen.mynewgamesapper.sapperbutton android:layout_width="0dp"             android:id="@+id/btn2"             android:layout_height="wrap_content"             android:layout_weight="0.1"             android:background="#f1f1c8"             android:textcolor="#00ecfd"             android:gravity="center"             />         <com.example.helen.mynewgamesapper.sapperbutton android:layout_width="0dp"             android:id="@+id/btn3"             android:layout_height="wrap_content"             android:layout_weight="0.1"             android:background="#f1f1c8"             android:textcolor="#00ecfd"             android:gravity="center"             />     <com.example.helen.mynewgamesapper.sapperbutton android:layout_width="0dp"         android:id="@+id/btn4"         android:layout_height="wrap_content"         android:layout_weight="0.1"         android:background="#f1f1c8"         android:textcolor="#00ecfd"         android:gravity="center"         />     <com.example.helen.mynewgamesapper.sapperbutton android:layout_width="0dp"         android:id="@+id/btn5"         android:layout_height="wrap_content"         android:layout_weight="0.1"         android:background="#f1f1c8"         android:textcolor="#00ecfd"         android:gravity="center"         />     <com.example.helen.mynewgamesapper.sapperbutton android:layout_width="0dp"         android:id="@+id/btn6"         android:layout_height="wrap_content"         android:layout_weight="0.1"         android:background="#f1f1c8"         android:textcolor="#00ecfd"         android:gravity="center"         />     <com.example.helen.mynewgamesapper.sapperbutton android:layout_width="0dp"         android:id="@+id/btn7"         android:layout_height="wrap_content"         android:layout_weight="0.1"         android:background="#f1f1c8"         android:textcolor="#00ecfd"         android:gravity="center"         />     <com.example.helen.mynewgamesapper.sapperbutton android:layout_width="0dp"         android:id="@+id/btn8"         android:layout_height="wrap_content"         android:layout_weight="0.1"         android:background="#f1f1c8"         android:textcolor="#00ecfd"         android:gravity="center"         />     <com.example.helen.mynewgamesapper.sapperbutton android:layout_width="0dp"         android:id="@+id/btn9"         android:layout_height="wrap_content"         android:layout_weight="0.1"         android:background="#f1f1c8"         android:textcolor="#00ecfd"         android:gravity="center"         />     <com.example.helen.mynewgamesapper.sapperbutton android:layout_width="0dp"         android:id="@+id/btn10"         android:layout_height="wrap_content"         android:layout_weight="0.1"         android:background="#f1f1c8"         android:textcolor="#00ecfd"         android:gravity="center"         />  </linearlayout> 

my button class:

package com.example.helen.mynewgamesapper;  import android.content.context; import android.widget.button;  public class sapperbutton extends button {      private boolean isopen = false;     private boolean isbomb = false;     private boolean isblown = false;    /*         public sapperbutton(context context, attributeset attrs, int defstyleattr, int defstyleres) {             super(context, attrs, defstyleattr, defstyleres);         }      public sapperbutton(context context, attributeset attrs, int defstyleattr) {         super(context, attrs, defstyleattr);     }      public sapperbutton(context context, attributeset attrs) {         super(context, attrs);     }      */     public sapperbutton(context context) {         super(context);     }         public boolean isopen()     {         return isopen;     }  public void setopen(boolean open) {     isopen = open; } public void setbomb(boolean bomb) {     isbomb = bomb; }  public boolean getisbomb() {     return isbomb; }   public boolean isblown() {     return isblown; }  public void setblowned(boolean isblowning) {     isblown = isblowning; } 

}

log of crashing:

03-26 19:03:58.874 31921-31921/com.example.helen.mynewgamesapper e/androidruntime: fatal exception: mainprocess: com.example.helen.mynewgamesapper, pid:java.lang.runtimeexception: unable start activity componentinfo{com.example.helen.mynewgamesapper/com.example.helen.mynewgamesapper.gameactivity}: android.view.inflateexception: binary xml file line #42: error inflating class com.example.helen.mynewgamesapper.sapperbutton                                                                                        @ android.app.activitythread.performlaunchactivity(activitythread.java:2358) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2410) @ android.app.activitythread.access$800(activitythread.java:155) @ android.app.activitythread$h.handlemessage(activitythread.java:1331) @ android.os.handler.dispatchmessage(handler.java:110) @ android.os.looper.loop(looper.java:193) @ android.app.activitythread.main(activitythread.java:5395) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:515) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:837) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:653) @ dalvik.system.nativestart.main(native method)                                                                                         caused by: android.view.inflateexception: binary xml file line #42: error inflating class com.example.helen.mynewgamesapper.sapperbutton @ android.view.layoutinflater.createview(layoutinflater.java:603) @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:696) @ android.view.layoutinflater.rinflate(layoutinflater.java:755) @ android.view.layoutinflater.rinflate(layoutinflater.java:758) @ android.view.layoutinflater.inflate(layoutinflater.java:492) @ android.view.layoutinflater.inflate(layoutinflater.java:397) @ android.view.layoutinflater.inflate(layoutinflater.java:353) @ com.android.internal.policy.impl.phonewindow.setcontentview(phonewindow.java:312) @ android.app.activity.setcontentview(activity.java:1952) @ com.example.helen.mynewgamesapper.gameactivity.oncreate(gameactivity.java:20) @ android.app.activity.performcreate(activity.java:5277) @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1088) @ android.app.activitythread.performlaunchactivity(activitythread.java:2322) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2410)  @ android.app.activitythread.access$800(activitythread.java:155)  @ android.app.activitythread$h.handlemessage(activitythread.java:1331)  @ android.os.handler.dispatchmessage(handler.java:110)  @ android.os.looper.loop(looper.java:193)  @ android.app.activitythread.main(activitythread.java:5395)  @ java.lang.reflect.method.invokenative(native method)  @ java.lang.reflect.method.invoke(method.java:515)  @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:837)  @ com.android.internal.os.zygoteinit.main(zygoteinit.java:653)  @ dalvik.system.nativestart.main(native method)  caused by: java.lang.nosuchmethodexception: <init> [class android.content.context, interface android.util.attributeset] @ java.lang.class.getconstructorormethod(class.java:472) @ java.lang.class.getconstructor(class.java:446) @ android.view.layoutinflater.createview(layoutinflater.java:568) @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:696)  @ android.view.layoutinflater.rinflate(layoutinflater.java:755)  @ android.view.layoutinflater.rinflate(layoutinflater.java:758)  @ android.view.layoutinflater.inflate(layoutinflater.java:492)  @ android.view.layoutinflater.inflate(layoutinflater.java:397)  @ android.view.layoutinflater.inflate(layoutinflater.java:353)  @ com.android.internal.policy.impl.phonewindow.setcontentview(phonewindow.java:312)  @ android.app.activity.setcontentview(activity.java:1952)  @ com.example.helen.mynewgamesapper.gameactivity.oncreate(gameactivity.java:20)  @ android.app.activity.performcreate(activity.java:5277)  @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1088)  @ android.app.activitythread.performlaunchactivity(activitythread.java:2322)  @ android.app.activitythread.handlelaunchactivity(activitythread.java:2410)  @ android.app.activitythread.access$800(activitythread.java:155)  @ android.app.activitythread$h.handlemessage(activitythread.java:1331)  @ android.os.handler.dispatchmessage(handler.java:110)  @ android.os.looper.loop(looper.java:193)  @ android.app.activitythread.main(activitythread.java:5395)  @ java.lang.reflect.method.invokenative(native method)  @ java.lang.reflect.method.invoke(method.java:515)  @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:837)  @ com.android.internal.os.zygoteinit.main(zygoteinit.java:653)  @ dalvik.system.nativestart.main(native method)  

you have commented out constructors in sapperbutton android needs use create instances of view when used in xml layout. the 2- or 3- argument constructors it's telling in error message. uncomment them, check them correctness, , try again.


Comments