gpt4 book ai didi

android - 设置背景颜色不起作用

转载 作者:行者123 更新时间:2023-11-29 21:12:49 24 4
gpt4 key购买 nike

我遇到了一个奇怪的问题。几次迭代前一切正常,但现在它不再工作了。我设置了一个 setMultiChoiceModeListener 让用户选择多个元素从 ListView 中删除。为了将元素标记为选中,我这样做了:

    public void onItemCheckedStateChanged(ActionMode mode,int position, long id, boolean checked){
Log.d(TAG,(checked ? "Checked " : "Un-checked ")+ ((TextView) listView.getChildAt(position).findViewById(R.id.label)).getText().toString());
if (checked){
listView.getChildAt(position).setBackgroundColor(Color.parseColor("#6633b5e5"));
}else{
listView.getChildAt(position).setBackgroundColor(Color.parseColor("#00000000"));
}
}

Log语句是调试用的,正确输出。在激活 MultiChoiceModeListener 的第一次长按时,它输出“选中的文本”。我还使用 Log 语句检查了它的颜色,它输出了正确的颜色值。唯一的问题是,它没有画出来。如果我继续选择项目,它们会改变颜色,如果我取消选择并重新选择该项目,它会改变颜色。因此,只有第一个选中的项目不会改变颜色,即使它被计为已 checkin ,例如 onActionItemClicked。整个事情看起来有点乏味,所以我也想知道是否有更好的方法来做到这一点。我研究过在 html 文件中设置选择器,但没有成功。我可以更改按下的颜色,但不能更改选中的颜色。

感谢任何帮助。

最佳答案

您正在尝试使用资源,因此您应该执行以下操作

listView.getChildAt(position).setBackgroundResource(Color.parseColor(<Your-Color>))

另外,如果你想跳过那个解析,你可以把那个颜色放在你的 color.xml 中。并使用 R.color.<your-color-name> 引用它相反。

listView.getChildAt(position).setBackgroundResource(R.color.<Your-Color>)

关于android - 设置背景颜色不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22289840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com