在Android中的Horizo​​ntalListView中突出显示所选图像,它将保持选中状态,直到没有单击另一个图像

时间:2012-06-20 07:31:51

标签: android android-listview horizontalscrollview

我正在使用HorizantalListView,但是当我点击列表中的任何元素时,我想要显示它已被选中,它应该保持选中状态,直到没有点击另一个图像如何可能请帮助我。

enter image description here

3 个答案:

答案 0 :(得分:4)

将其设为切换按钮而不是imageView。然后在xml上创建一个选择器,其中包含您希望在每个对应状态下的各种图像。 (我现在不确定是否可以使用imageView完成同样的操作,这就是我告诉你使用切换按钮的原因。)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:drawable="@drawable/button_pressed"/>
    <item android:state_pressed="false"
            android:drawable="@drawable/button_rested"/>
    <item android:state_enabled="false"
            android:drawable="@drawable/button_disabled"/>
</selector>

on laybout

<ToggleButton android:id="@+id/image" android:layout_width="fill_parent"
     android:layout_height="wrap_content" android:background="@null" android:gravity="center_horizontal" 
     android:src="@drawable/button_selector"/>

答案 1 :(得分:1)

继承人我是怎么做到的 - 我的图片来自cursorAdapter所以

1。)在适配器中,写了一个函数

/***
     * To change the colour of list item selected
     * 
     * @param position
     */
    public void setSelected(int position) {
        selectedPosition = position;
    }

2.)在BindView中继承游标适配器的类

// Change the background color
        if (x == selectedPosition) {
            holder.title.setBackgroundResource(R.color.red);
        }

如果图像已修复,您可以在xml布局中使用选择器

答案 2 :(得分:1)

您可以使用选择器对XML执行此操作,或使用 onItemClickListener(..)

以编程方式执行此操作

一个不完整的例子:

<强> item_selector.xml

<item android:state_focused="true" android:state_pressed="true"
    android:drawable="@drawable/list_selector_background_transition" />

<item android:state_focused="true" android:state_pressed="false"
    android:drawable="@drawable/list_selector_background_transition" />

而不是ImageViews,而是使用ImageButtons来实现此目的。

<ImageButton
android:id="@+id/icon"
android:layout_width="50px"
android:layout_height="wrap_content"
android:src="@drawable/item_selector"/>