Android ListView持久背景

时间:2012-11-20 11:26:14

标签: java android listview layout background

我的问题是: 是否有可能将一个可绘制资源应用于ListView中的TextView,这使得它保持其背景颜色,在用户抬起他/她的手指后说TextView?

考虑:

  1. 用户选择ListView中的项目
  2. 列表项突出显示
  3. 用户将他/她的手指从项目中删除
  4. 该项目不再突出显示
  5. 我的问题是,是否可以让对象在步骤4中保持突出显示? 我目前使用状态列表drawable为我的列表项。 我试过了

    android:state_focused="true"

    android:state_selected="true"

    android:state_check="true"

    提前致谢:)

    修改

    解决。我通过java代码实现了这一点。对于那些感兴趣的人,我做了以下几点:

    声明一个整数变量'previous',用于存储前一个索引,从第一个项开始为0,并强制通过setBackground()突出显示它。

    然后,在列表的onItemClickListener中,我只清除上一项的突出显示,突出显示当前项,并将“previous”设置为当前所选项目的索引。

    我不知道在xD之前我没有想到这一点我通常擅长解决问题。

    我想我们所有人都会发生这样的事情:P

1 个答案:

答案 0 :(得分: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>

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

它应该有用。