我有一个Android列表活动,其中包含一个自定义游标适配器,用于从数据库中检索项目。它应该使用检索到的项目名称设置视图文本,并将背景设置为项目的设置颜色,作为整数存储在DB中。名称按预期设置,但颜色不变。这是代码:
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView colorName = (TextView) view.findViewById(R.id.color_desc);
colorName.setText(cursor.getString(cursor.getColumnIndex(THREAD_DESC)));
view.setBackgroundColor(cursor.getInt(cursor.getColumnIndex(THREAD_COLOR)));
}
列表中的视图都显示正确的颜色名称,但背景为白色。我尝试将颜色设置为预设Java颜色,并且视图仍然以白色结束。将它从view.setBackgroundColor更改为colorName.setBackgroundColor并没有改变任何东西。我尝试在调用setBackgroundColor之前放置日志语句,并且看起来正在检索颜色整数。 我相信我用来测试的设备正在运行API 19.那么我错过了什么?
编辑: 经过一些更多的摆弄,我意识到这是因为DB中的颜色整数仅由R / G / B数据生成,没有Alpha位。调用Color.argb(0xFF,r,g,b)而不是Color.rgb(r,g,b)似乎修复了它。