好吧,我绝对坚持这一点。我有一个ListView模式singleChoice,当我点击它,我将它设置为选中。我用选择器将背景设置为drawable(我尝试了许多可以对应于选定项目的状态)。但是,当我选择它的背景不会改变,我不明白为什么。我为此访问了数十个论坛,但无法得到答案。这里是我的代码:Android ListView选择背景
在我的活动ListView控件:
<com.gaetanl.aspa.ui.component.ExtensibleListView
android:id="@+id/payment_billing_address_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/item_selectable"
android:choiceMode="singleChoice"></com.gaetanl.aspa.ui.component.ExtensibleListView>
其类:
public class ExtensibleListView extends ListView {
public ExtensibleListView(Context context) {
this(context, null);
}
public ExtensibleListView(Context context, AttributeSet attrs) {
this(context, attrs, android.R.attr.listViewStyle);
}
public ExtensibleListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.d(this, "item " + position + " selected = " + view.isSelected());
view.setSelected(true);
Log.d(this, "selected = " + view.isSelected());
}
});
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
的选择:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_activated="true"
android:drawable="@color/colorPrimary" />
<item
android:state_active="true"
android:drawable="@color/colorPrimary" />
<item
android:state_checked="true"
android:drawable="@color/colorPrimary" />
<item
android:state_selected="true"
android:drawable="@color/colorPrimary" />
<item
android:drawable="@android:color/transparent" />
</selector>
我不太清楚你想达到什么..你想改变一个已经选择列表视图项的背景颜色? –
是的就是这样! –
请发布您的适配器类的列表视图请,我可能会然后你。 –