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
Post a Comment