I have a listView
. custom_listitem1.xml is used for the items display in the list. Now i want to set Selector
based color resource(list_selector_color.xml) for the background of the item.
custom_listitem1.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="18sp"
android:textStyle="bold"
android:background="@color/list_selector_color"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:paddingLeft="6dip"
android:minHeight="?android:attr/listPreferredItemHeight"/>
list_selector_color.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->
</selector>
but it is giving following errors.....
06-06 18:38:19.422: ERROR/AndroidRuntime(18603): Uncaught handler: thread main exiting due to uncaught exception
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): android.view.InflateException: Binary XML file line #1: Error inflating class <unknown>
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.LayoutInflater.createView(LayoutInflater.java:513)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.LayoutInflater.inflate(LayoutInflater.java:385)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.ResourceCursorAdapter.newView(ResourceCursorAdapter.java:79)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.SimpleCursorAdapter.newView(SimpleCursorAdapter.java:96)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.CursorAdapter.getView(CursorAdapter.java:182)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.AbsListView.obtainView(AbsListView.java:1274)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.ListView.makeAndAddView(ListView.java:1668)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.ListView.fillDown(ListView.java:637)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.ListView.fillFromTop(ListView.java:694)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.ListView.layoutChildren(ListView.java:1521)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.AbsListView.onLayout(AbsListView.java:1113)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1108)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.LinearLayout.onLayout(LinearLayout.java:920)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.ViewRoot.performTraversals(ViewRoot.java:996)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.ViewRoot.handleMessage(ViewRoot.java:1633)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.os.Handler.dispatchMessage(Handler.java:99)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.os.Looper.loop(Looper.java:123)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.app.ActivityThread.main(ActivityThread.java:4363)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at java.lang.reflect.Method.invokeNative(Native Method)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at java.lang.reflect.Method.invoke(Method.java:521)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at dalvik.system.NativeStart.main(Native Method)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): Caused by: java.lang.reflect.InvocationTargetException
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.TextView.<init>(TextView.java:329)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at java.lang.reflect.Constructor.constructNative(Native Method)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.LayoutInflater.createView(LayoutInflater.java:500)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): ... 52 more
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): Caused by: android.content.res.Resources$NotFoundException: File res/color/list_selector_color.xml from drawable resource ID #0x7f070000
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.content.res.Resources.loadDrawable(Resources.java:1693)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.content.res.TypedArray.getDrawable(TypedArray.java:548)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.view.View.<init>(View.java:1850)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): at android.widget.TextView.<init>(TextView.java:335)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): ... 56 more
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): Caused by: org.xmlpul
what is the problem in my code?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/background"//color 1
>
<TextView
android:id="@+id/tvheader"
android:layout_width="300dip"
android:layout_height="wrap_content"
android:background="#EC7703"
android:textColor="#000000"
android:text=" Edit Items" />
/>
<TextView
android:id="@+id/tvsl"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:background="@color/translucent_red"//color 2
/>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/background">
<EditText
android:id="@+id/txtsl"
android:maxLines="1"
android:layout_marginTop="3dip"
android:layout_marginBottom="2dip"
android:layout_width="wrap_content"
android:ems="20"
android:layout_height="wrap_content"/>
</LinearLayout>
<TextView
android:id="@+id/tvname"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:background="@color/background"
/>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/row">
<Spinner
android:id="@+id/txtname"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:prompt="@string/medicine_info"
android:layout_toRightOf="@id/slcolon"
/>
</LinearLayout>
<TextView
android:id="@+id/tvqty"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:background="@color/background"
/>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/background">
<EditText
android:id="@+id/txtqty"
android:maxLines="1"
android:layout_marginTop="3dip"
android:gravity="right"
android:layout_marginBottom="2dip"
android:layout_width="wrap_content"
android:ems="20"
android:layout_height="wrap_content"/>
</LinearLayout>
<TextView
android:id="@+id/tvuom"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:background="@color/background"
/>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/background">
<EditText
android:id="@+id/txtuom"
android:maxLines="1"
android:layout_marginTop="3dip"
android:layout_marginBottom="2dip"
android:layout_width="wrap_content"
android:ems="20"
android:layout_height="wrap_content"/>
</LinearLayout>
<TableLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@color/background"
android:layout_gravity="center"
android:stretchColumns="*" >
<TableRow>
<Button
android:id="@+id/Btnok"
android:text="Edit" />
<Button
android:id="@+id/Btndelete"
android:text="Delete" />
<Button
android:id="@+id/Btncancel"
android:text="Cancel" />
</TableRow>
</TableLayout>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="40dip"
android:background="#F7BE57">//collor change by using color code
<TextView
android:id="@+id/maincolon"
android:layout_width="wrap_content"
android:layout_height="40dip"
android:text=" " />
<TextView
android:id="@+id/tvprovider"
android:layout_width="wrap_content"
android:layout_height="40dip"
android:textColor="#000000"
android:text="Provider : Softworks"
/>
</LinearLayout>
</LinearLayout>
You can't use color selector as a background. You may use drawable selector instead:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid android:color="#ffff0000"/>
</shape>
</item><!-- pressed -->
<item android:state_focused="true">
<shape>
<solid android:color="#ff0000ff"/>
</shape>
</item><!-- focused -->
<item>
<shape>
<solid android:color="#ff000000"/>
</shape>
</item><!-- default -->
</selector>
You will have to put it in drawable/
folder instead of color/
and access as
android:background="@drawable/list_selector_color"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With