【发布时间】:2014-06-24 17:20:21
【问题描述】:
在我的列表视图中,当用户长按某个项目时,我会绘制一个自定义操作栏并为用户提供一次删除多个项目的选项。
默认情况下,如果我执行长按操作,我会将选择颜色变为蓝色并消失。
为了克服我尝试添加这样的选择器。
listviewselector.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="@color/RED"/>
<!-- Pressed -->
<item
android:state_selected="true"
android:state_focused="false"
android:drawable="@color/BLUE" />
</selector>
如果我设置了这个选择器,当用户长按我可以看到红色,但之后如果用户执行选择,没有颜色会保留在项目上。默认情况下,它看起来是白色的。
我尝试根据以下条件设置背景颜色
if(mSelectedItemsIds.get(key))
{
convertView.setBackgroundColor(REDCOLOR);
}
else
{
convertView.setBackgroundColor(WHITE);
}
在这种情况下,如果用户长按,然后如果用户选择多个项目,我会看到红色,默认情况下所有项目的颜色都是白色。但是,如果用户触摸任何项目,默认颜色将是空的,即选择时不会出现颜色。
如何获得默认的白色、点击蓝色和多选红色?
我试过这样 新选择器:
<?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="@color/RED"/>
<!-- Pressed -->
<item
android:state_selected="true"
android:state_focused="false"
android:drawable="@color/WHITE" />
</selector>
if(mSelectedItemsIds.get(key))
{
convertView.setBackgroundColor(mContext.getResources().getColor(R.color.RED));
}
else
{
convertView.setBackgroundColor(R.drawable.listviewselector);
}
默认情况下,我将所有项目都设为蓝色。为什么?
【问题讨论】:
-
尝试将 listselector 设置为由 convertView 膨胀的 xml 文件
-
请提供任何示例代码.. 谢谢
-
你发布的listviewselector.xml是样本顺便说一下我也是火影迷
-
是的,谢谢我太喜欢火影忍者了...谢谢 :).. 但是我尝试过这样的示例。我已经编辑了答案,请看。我得到所有项目的默认蓝色。
-
嘿,它成功了。我已经发布了答案。感谢您的帮助。火影忍者摇滚 :)
标签: android css listview android-listview colors