【发布时间】:2016-07-04 06:35:51
【问题描述】:
我想更改适配器中选定列表项的背景。
列表适配器
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final Card card = getItem(position);
final ViewHolder viewHolder;
if (convertView != null) {
viewHolder = (ViewHolder) convertView.getTag();
} else {
convertView = from(context).inflate(R.layout.card_item, parent, false);
viewHolder = new ViewHolder(convertView);
convertView.setTag(viewHolder);
}
viewHolder.select.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewHolder.cardLayout.setBackgroundColor(ContextCompat.getColor(context, R.color.md_grey_600));
}
});
return convertView;
}
private class ViewHolder {
Button select;
RelativeLayout cardLayout;
public ViewHolder(View view) {
select = (Button) view.findViewById(R.id.carditem_btn_upvote);
cardLayout = (RelativeLayout) view.findViewById(R.id.cardlist_item);
}
}
问题是当我为 ex 选择时。列表的第一项,第 7 项也被选中。我注意到有一种赞助人。当我选择第二项时,第 8 项也被选中,依此类推。
【问题讨论】:
-
您需要在某些集合 HashMap 中维护您选择的项目位置,并为特定位置提供颜色值。
标签: android list listview adapter