2012-11-20 54 views
4

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

考虑:

  1. 用户在ListView选择一个项目
  2. 列表项突出
  3. 用户移除他/她的手指离开项目
  4. 该项目不再被突出显示

我的问题是,是否有可能使允许对象在步骤4仍然突出?我目前正在使用一个状态列表drawable作为我的列表项目。 我试过

android:state_focused="true"

android:state_selected="true"

android:state_check="true"

感谢提前:)

编辑

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

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

然后,在onItemClickListener的名单,我只是清除以前项目的亮点,突出的电流,并设置“以前”到当前选定项的索引。

不知道我怎么没想到这一点的xD之前,我通常在问题解决好。

发生在我们所有的在某些时候我想:P

回答

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> 

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

它应该工作。

+0

正是我在找的东西。 我的方法_did_工作,但我更愿意在xml中定义应用程序的视觉效果。 所以谢谢:) –