安卓ListView持久化背景

4
我的问题是: 在 ListView 中,是否可以将可绘制资源应用于 TextView,使其在用户放开该 TextView 后保持其背景颜色?
考虑以下情况:
1.用户在 ListView 中选择一个项目; 2.列表项高亮显示; 3.用户将手指从该项上移开; 4.该项不再高亮显示。
我的问题是,是否可能让对象在第 4 步保持高亮状态? 我目前正在使用状态列表可绘制资源来处理我的列表项。 我已经尝试了 android:state_focused="true"、android:state_selected="true" 和 android:state_check="true"。
提前感谢您的帮助 :)
编辑 问题已解决。我通过 Java 代码实现了这一点。对于那些感兴趣的人,我做了以下操作:
声明一个整数变量“previous”,用于存储先前的索引,从第一个项目开始为0,并通过 setBackground() 强制突出显示它。
然后,在列表的 onItemClickListener 中,我只需清除上一个项目的突出显示,突出当前项目,并将“previous”设置为当前选定项目的索引。
不知道为什么我以前没有想到 xD 我通常很擅长解决问题。
我想每个人都会遇到这种情况 :P
1个回答

1

虽然您的方法是可行的,但我希望避免使用多余的代码。 实现此目标的步骤如下:

将列表视图的选择模式设置为 singleChoiceMode。

创建以下选择器

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/color_light_blue_for_selected_item" android:state_checked="true"/>
</selector>

将其设置为列表项的背景。

这样就可以了。


正是我想要的。 我的方法确实有效,但我更喜欢在xml中定义应用程序的视觉效果。 所以谢谢 :) - Zyyk Savvins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接