我正在使用自定义列表视图,它位于幻灯片布局中。
这里我试图在点击特定项目时更改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>
答案 0 :(得分:2)
在适配器内部,创建一个实例变量int selectedPosition = -1;
然后在getView()
方法内部检查selectedPosition ==该元素的位置,将list_row_selector设置为其他背景,设置正常背景。
此外,只要单击某个项目,就会更新selectedPosition
的值,并在适配器中调用notifyDataSetChanged()
来刷新列表。