我有一个CardViews的RecyclerView列表。在每个CardView上,用户首先从下拉对话框中选择“类型”。类型选择是“工作”和“主页”。类型选择作为String存储在SQLite数据库中。当我运行应用程序时,没有显示TextView“cardtype1”的视图,它应该显示数据库中的类型选择。
如何为CardView上显示的TextView类型设置不同的背景颜色,具体取决于用户选择并存储在数据库中的内容?以下是Adapter文件中的部分代码。
Adapter.java
...
public List<ListItem> listItems;
private static class ItemHolder extends RecyclerView.ViewHolder {
private TextView cardType1;
private ItemHolder(View itemView) {
super(itemView);
cardType1 = (TextView) itemView.findViewById(R.id.cardType1);
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
final ListItem listItem = listItems.get(position);
final ItemHolder itemHolder = (ItemHolder) holder;
itemHolder.cardType1.setText(listItem.getType());
if (listItem.getType() == "Work") {
itemHolder.cardType1.setBackgroundColor(Color.parseColor("#000000"));
}
else if (listItem.getType() == "Home") {
itemHolder.cardType1.setBackgroundColor(Color.parseColor("#008080"));
}
答案 0 :(得分:0)
当用户单击该选项时,更新列表中的所需对象listItems
。然后在适配器中调用notifyDataSetChanged()
方法。
答案 1 :(得分:0)
当用户从您的两个选项中选择时,使用以下内容设置textColor。
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
final ListItem listItem = listItems.get(position);
final ItemHolder itemHolder = (ItemHolder) holder;
itemHolder.cardType1.setText(listItem.getType());
holder.itemView.setOnClickListener(new View.OnClickListener() {
if (listItem.getType() == "Work") {
itemHolder.cardType1.setBackgroundColor(Color.parseColor("#000000"));
}
else if (listItem.getType() == "Home") {
itemHolder.cardType1.setBackgroundColor(Color.parseColor("#008080"));
}
}
希望这有帮助