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