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

4

1 回答 1

1

尽管您的方法可行,但这是我想避免的额外代码。实现这一点的步骤如下:

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

制作这个选择器

<?xml 版本="1.0" 编码="utf-8"?>
<选择器 xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/color_light_blue_for_selected_item" android:state_checked="true"/>

</选择器>

Set this as the background of your list items.

And it should work.

于 2012-11-21T08:57:33.153 回答