I have a custom ListView, which should have color selector to its background and text items.
Custom item of my list:
<?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"
android:paddingBottom="5dp"
android:paddingTop="5dp" >
<ImageView
android:id="@+id/user_image"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/user_name"
android:layout_alignTop="@+id/user_name"
android:scaleType="centerInside" />
<CheckedTextView
android:id="@+id/user_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:layout_marginLeft="5dp"
android:layout_toRightOf="@+id/user_image"
android:background="@drawable/list_item_selector_blue"
android:textColor="@drawable/text_color_selector"
android:textSize="18sp" />
</RelativeLayout>
I'm able to change the CheckedTextView background, through a selector, but when I put the selector in the text color like this android:textColor="@drawable/text_color_selector"
, the app crashes with the following error:
09-02 11:36:25.918: E/AndroidRuntime(17612): FATAL EXCEPTION: main
09-02 11:36:25.918: E/AndroidRuntime(17612): Process: a.com.a, PID: 17612
09-02 11:36:25.918: E/AndroidRuntime(17612): android.view.InflateException: Binary XML file line #17: Error inflating class android.widget.CheckedTextView
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.LayoutInflater.createView(LayoutInflater.java:626)
09-02 11:36:25.918: E/AndroidRuntime(17612): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at adapters.UsersListAdapter.getView(UsersListAdapter.java:44)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.AbsListView.obtainView(AbsListView.java:2713)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.ListView.measureHeightOfChildren(ListView.java:1274)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.ListView.onMeasure(ListView.java:1186)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.View.measure(View.java:17354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.View.measure(View.java:17354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1237)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.LinearLayout.onMeasure(LinearLayout.java:590)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.View.measure(View.java:17354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.View.measure(View.java:17354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.View.measure(View.java:17354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.View.measure(View.java:17354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.View.measure(View.java:17354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.View.measure(View.java:17354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:704)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.View.measure(View.java:17354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.View.measure(View.java:17354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.View.measure(View.java:17354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
09-02 11:36:25.918: E/AndroidRuntime(17612): at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:382)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.View.measure(View.java:17354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5352)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
09-02 11:36:25.918: E/AndroidRuntime(17612): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2505)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.View.measure(View.java:17354)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2176)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1315)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1512)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1199)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6387)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.Choreographer.doCallbacks(Choreographer.java:603)
09-02 11:36:25.918: E/AndroidRuntime(17612): at android.view.Choreographer.doFrame(Choreog
I've googled a lot, and find many people with issue like this, but any tip can solve my issue.
These are my selectors:
text_color_selector
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:drawable="@android:color/white"/>
<item
android:state_checked="true"
android:drawable="@android:color/white"/>
<item
android:drawable="@color/gray_text" />
</selector>
list_item_selector_blue
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:drawable="@color/list_item_selected_blue"/>
<item
android:state_checked="true"
android:drawable="@color/list_item_selected_blue"/>
<item
android:drawable="@android:color/white" />
</selector>