Whats wrong with this xml, I am trying to get a button press feel. I am getting a exception, I am unable to understood. ResourceNotFound
In my layout.xml
<Button
android:id="@+id/submit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/submitbuttonpress"
android:text="Submit"
android:textColor="#eeeee4"
android:typeface="monospace" />
My submitbuttonpress.xml in the drawable folder
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:background="#AAAAAA" />
<item android:state_pressed="true" android:background="#777777" />
</selector>
Exception (logcat)
07-17 19:07:25.072: E/AndroidRuntime(2225): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.taxeeta/com.itaxeeta.BookingExperience}: android.view.InflateException: Binary XML file line #326: Error inflating class android.widget.Button
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.os.Handler.dispatchMessage(Handler.java:99)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.os.Looper.loop(Looper.java:130)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.app.ActivityThread.main(ActivityThread.java:3687)
07-17 19:07:25.072: E/AndroidRuntime(2225): at java.lang.reflect.Method.invokeNative(Native Method)
07-17 19:07:25.072: E/AndroidRuntime(2225): at java.lang.reflect.Method.invoke(Method.java:507)
07-17 19:07:25.072: E/AndroidRuntime(2225): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
07-17 19:07:25.072: E/AndroidRuntime(2225): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
07-17 19:07:25.072: E/AndroidRuntime(2225): at dalvik.system.NativeStart.main(Native Method)
07-17 19:07:25.072: E/AndroidRuntime(2225): Caused by: android.view.InflateException: Binary XML file line #326: Error inflating class android.widget.Button
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.view.LayoutInflater.createView(LayoutInflater.java:518)
07-17 19:07:25.072: E/AndroidRuntime(2225): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
07-17 19:07:25.072: E/AndroidRuntime(2225): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:216)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.app.Activity.setContentView(Activity.java:1660)
07-17 19:07:25.072: E/AndroidRuntime(2225): at com.itaxeeta.BookingExperience.onCreate(BookingExperience.java:100)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
07-17 19:07:25.072: E/AndroidRuntime(2225): ... 11 more
07-17 19:07:25.072: E/AndroidRuntime(2225): Caused by: java.lang.reflect.InvocationTargetException
07-17 19:07:25.072: E/AndroidRuntime(2225): at java.lang.reflect.Constructor.constructNative(Native Method)
07-17 19:07:25.072: E/AndroidRuntime(2225): at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.view.LayoutInflater.createView(LayoutInflater.java:505)
07-17 19:07:25.072: E/AndroidRuntime(2225): ... 27 more
07-17 19:07:25.072: E/AndroidRuntime(2225): Caused by: android.content.res.Resources$NotFoundException: File res/drawable/nextprevbuttonpress.xml from drawable resource ID #0x7f02003e
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.content.res.Resources.loadDrawable(Resources.java:1697)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.view.View.<init>(View.java:1951)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.widget.TextView.<init>(TextView.java:389)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.widget.Button.<init>(Button.java:108)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.widget.Button.<init>(Button.java:104)
07-17 19:07:25.072: E/AndroidRuntime(2225): ... 30 more
07-17 19:07:25.072: E/AndroidRuntime(2225): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #3: <item> tag requires a 'drawable' attribute or child tag defining a drawable
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:167)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.graphics.drawable.Drawable.createFromXml(Drawable.java:728)
07-17 19:07:25.072: E/AndroidRuntime(2225): at android.content.res.Resources.loadDrawable(Resources.java:1694)
07-17 19:07:25.072: E/AndroidRuntime(2225): ... 35 more
Once Try this
In selector state it is required to add drawable and in your case you wants to add color in selector state.So it is possible to create drawable using color in resource. It will work as ColorDrawable
Please check below code
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/clr_normal" android:state_pressed="false"/>
<item android:drawable="@drawable/clr_pressed" android:state_pressed="true"/>
</selector>
values/string.xml for color
<drawable name="clr_normal">#AAAAAA</drawable>
<drawable name="clr_pressed">#777777</drawable>
The attribute android:background
does not exist. The correct way to do this is to first create a new resource file res/colors.xml
with the following contents:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="lt_gray">#AAAAAA</color>
<color name="dk_gray">#777777</color>
</resources>
Then just change your selector
to the following:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@color/lt_gray" />
<item android:state_pressed="true" android:drawable="@color/dk_gray" />
</selector>
This automatically creates a ColorDrawable and assigns it as the drawable for that state.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.