我正在使用 ListViewsetSelector(...)来更改所选项目的背景颜色,虽然颜色确实发生了变化,但它会选择一种默认颜色,而不是我想要的颜色。我想创建一个 ListView ,一次只允许选择一个项目。(几乎)一切正常,但无论我尝试什么,所选项目总是以默认颜色着色。这是我的代码:列表显示:<android.support.constraint.ConstraintLayout android:id="@+id/account_picker_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/rounded_corner_button" > <ListView android:id="@+id/account_picker_list" android:layout_width="0dp" android:layout_height="0dp" android:background="@drawable/account_picker_list_corner" android:backgroundTint="@color/white" android:choiceMode="singleChoice" android:listSelector="@drawable/selection_effect" app:layout_constraintBottom_toTopOf="@+id/account_picker_divider2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> </ListView> [...]</android.support.constraint.ConstraintLayout>选择效果.xml:<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">自定义 ListView 适配器仅实现getView(...)背景颜色,不会以任何方式更改背景颜色。从 中的语句可以看出selection_effect.xml,我已经尝试了 android 让我使用的所有可能状态的组合,不用说,应用程序中显示的实际颜色不在我上面定义的颜色中。我错过了什么?
1 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
添加一个名为 such 的额外属性isSelected到Account类。
class Account {
... other attributes
private boolean isSelected;
}
在:getView_AccountPickerViewAdapter
final Account myAccount = getItem(position);
if (myAccount.isSelected()) {
// set selected background
} else {
// set default background
}
当onItemClick列表视图isSelected被点击的账户项目设置为真时。
添加回答
举报
0/150
提交
取消