Tôi gặp sự cố sau. Tôi muốn tùy chỉnh sự xuất hiện của hàng trong một danh sách, nhưng ngoại lệ được ném trong quá trình lạm phát.Làm cách nào để tham chiếu thuộc tính chủ đề theo kiểu?
đoạn mã trong style.xml
<style name="AppTheme.Main">
<item name="item_shadowColor">#000000</item>
</style>
<style name="item_label">
<item name="android:shadowColor">?attr/item_shadowColor</item>
</style>
attr.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="item_shadowColor" format="color" />
</resources>
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@id/title"
style="@style/item_label"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
Và ngoại trừ
FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #7: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:606)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at ru.mts.goodok.adapter.CategoryListAdapter.getView(CategoryListAdapter.java:30)
at android.widget.AbsListView.obtainView(AbsListView.java:2052)
at android.widget.ListView.makeAndAddView(ListView.java:1820)
at android.widget.ListView.fillDown(ListView.java:672)
at android.widget.ListView.fillFromTop(ListView.java:732)
at android.widget.ListView.layoutChildren(ListView.java:1673)
at android.widget.AbsListView.onLayout(AbsListView.java:1882)
at android.view.View.layout(View.java:11425)
at android.view.ViewGroup.layout(ViewGroup.java:4232)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:925)
at android.view.View.layout(View.java:11425)
at android.view.ViewGroup.layout(ViewGroup.java:4232)
at android.widget.FrameLayout.onLayout(FrameLayout.java:431)
at android.view.View.layout(View.java:11425)
at android.view.ViewGroup.layout(ViewGroup.java:4232)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1486)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1399)
at android.view.View.layout(View.java:11425)
at android.view.ViewGroup.layout(ViewGroup.java:4232)
at android.widget.FrameLayout.onLayout(FrameLayout.java:431)
at android.view.View.layout(View.java:11425)
at android.view.ViewGroup.layout(ViewGroup.java:4232)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1516)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2505)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:4945)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:586)
... 39 more
Caused by: java.lang.NumberFormatException: Invalid int: "?2130771972"
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parse(Integer.java:375)
at java.lang.Integer.parseInt(Integer.java:366)
at com.android.internal.util.XmlUtils.convertValueToInt(XmlUtils.java:123)
at android.content.res.TypedArray.getInt(TypedArray.java:254)
at android.widget.TextView.<init>(TextView.java:829)
at android.widget.TextView.<init>(TextView.java:489)
... 42 more
Tôi đang làm gì sai và làm thế nào tôi có thể giải quyết vấn đề này?
? Attr/item_shadowColor xóa màu này và tự tạo màu cho riêng bạn. –
? Attr/item_shadowColor không thể xóa vì nó đặt màu cho các chủ đề khác nhau – Bracadabra