2014-01-24 39 views
0

我给我的ListView添加了一些selector来给它一个定制的外观。我问在这里怎么做My ListView lost its behavior after I changed background color?设置drawable会导致我的应用程序崩溃?

我按照指示步骤。但是,当我将android:background设置为我的ListView指向选择器时,应用程序崩溃。我不知道为什么。当我将它设置回十六进制颜色时,它可以工作。

这里是选择XML命名list_item_state.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="#808080"/> 
    <item android:state_focused="true" android:color="#808080"/> 
    <item android:color="#FFFAF0" /> 
</selector> 

这里是ListView XML:

<ListView android:id="@+id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#FFFAF0" <!-- changes are made here --> 
     android:dividerHeight="1dp" 
     android:divider="#808080"/> 

难道我做错了什么吗?

回答

1

在你的价值观文件中创建一个XML color.xml并定义你的颜色在这里

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="magenta">#FF00FF</color> 
    <color name="yellow">#FFFF00</color> 
    <color name="light_grey">#ffb9b8bb</color> 
</resources> 

然后在您的选择

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 

     <item android:state_pressed="true" android:drawable="@color/yellow" /> 
     <item android:state_focused="true" android:drawable="@color/yellow" /> 
     <item android:drawable="@color/magenta"/> 

</selector> 
+0

除了使用这些颜色,一切都很好? –

+0

是的..我已经试图通过添加这些更改,其工作的示例代码。 –