我有一個自定義適配器的列表,並希望根據列表項或變量的內容設置背景顏色。 該列表由包含日期和一些信息的文本視圖組成。基於內容/變量更改listitem背景
我需要的背景顏色時,將顯示一個新的日期來改變..
物品1:2,2016年3月 - >藍
ITEM2:2. 2016年3月 - >藍
項目3 :3,2016年3月 - >灰色
ITEM4:4,2016年3月 - >藍
...
我可以設置一個可以在listAdapter中使用的變量(isNewDate)嗎?
我的目錄適配器:
public class HistoryListViewAdapter extends ArrayAdapter<HistoryListItem> {
public HistoryListViewAdapter(Context context, List<HistoryListItem> items) {
super(context, R.layout.history_list_item, items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if(convertView == null) {
// inflate the ListView item layout
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.history_list_item, parent, false);
//different color if new date
if (newdate == 0) //How to find if it is a "new date"
//togle color
convertView.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.colorPrimaryDark));
// initialize the view holder
viewHolder = new ViewHolder();
viewHolder.ivIcon = (ImageView) convertView.findViewById(R.id.ivIcon);
viewHolder.tvTextfield = (TextView) convertView.findViewById(R.id.tvTextfield);
viewHolder.tvNote = (ImageView) convertView.findViewById(R.id.tvNote);
convertView.setTag(viewHolder);
} else {
// recycle the already inflated view
viewHolder = (ViewHolder) convertView.getTag();
}
// update the item view
HistoryListItem item = getItem(position);
viewHolder.ivIcon.setImageDrawable(item.icon);
viewHolder.tvTextfield.setText(item.textfield);
viewHolder.tvNote.setImageDrawable(item.note);
return convertView;
}
private static class ViewHolder {
ImageView ivIcon;
TextView tvTextfield;
ImageView tvNote;
}
}
你是什麼意思的isNewDate和什麼是你必須改變列表項目的背景顏色? –
isNewDate是一個變量的建議,如果背景顏色應該與最後一個項目相同,或者切換到第二個背景顏色,則該變量可能爲true或false。 標準是「如果(列表項包含不同於上一個項目的信息){切換背景色}」 每個列表項都包含特定日期的信息。每天可能有零個,一個或多個項目。 列表數據存儲在數據庫中。 – EirikO