如何更改listview的项目颜色并在android中保持更长时间?

时间:2014-06-03 09:24:37

标签: android android-listview

我正在使用自定义列表视图,它位于幻灯片布局中。

这里我试图在点击特定项目时更改listview的每个ITEM的颜色。 它工作正常,但在这里我需要的是,我想保持改变的颜色 显示,直到我点击列表视图中的另一个项目。

怎么做?建议请。

感谢您宝贵的时间!...

注意:从下面的代码中,我将 list_row_selector.xml 设置为该自定义列表视图的背景。

list_row_selector.xml

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

<!-- Selected --> 
 <item 
android:state_focused="true" 
android:state_selected="false" 
android:drawable="@drawable/focused"/> 

<!-- Pressed -->
<item 
android:state_selected="true" 
android:state_focused="false"
 android:drawable="@drawable/selected" /> 

</selector>

color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

<drawable name="focused">#ff5500</drawable>
<drawable name="selected">#FF00FF</drawable>
</resources>

1 个答案:

答案 0 :(得分:2)

在适配器内部,创建一个实例变量int selectedPosition = -1;

然后在getView()方法内部检查selectedPosition ==该元素的位置,将list_row_selector设置为其他背景,设置正常背景。

此外,只要单击某个项目,就会更新selectedPosition的值,并在适配器中调用notifyDataSetChanged()来刷新列表。