我正在使用 HorizantalListView,但是当我点击列表中的任何元素时,我想显示它已被选中,并且它应该保持选中状态,直到未单击另一个图像如何可能请帮助我。
问问题
2425 次
3 回答
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>
在布局上
<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"/>
于 2012-06-20T07:39:46.847 回答
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 布局中使用选择器
于 2012-06-20T07:38:54.287 回答
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"/>
于 2012-06-20T07:45:49.340 回答