セクションとエントリ アイテムを含む listView があります。例えば..
Supplies (Section Item)
Pens (Entry Item)
Pencils
Groceries
Eggs
Lettuce
Etc....
私のリスト アダプターでは、セクション アイテムの背景をさまざまな色に設定しています。
view.setBackgroundColor(Color.YELLOW);
スクロールを開始するまで、これはすべて正常に機能し、その後、セクション項目が黒くなります (エントリ項目はこれを行いません)。これを防ぐ方法を知っている人はいますか?
getView() メソッドのコード
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
final ItemEchelon i = items.get(position);
if (i != null) {
if(i.isSection()){
SectionItemEchelon si = (SectionItem)i;
v = vi.inflate(R.layout.item_section, null);
v.setOnClickListener(null);
v.setOnLongClickListener(null);
v.setLongClickable(false);
final TextView sectionView = (TextView) v.findViewById(R.id.tv_Name);
sectionView.setText(si.getTitle());
if(count == 0)
{
v.setBackgroundColor(Color.YELLOW);
}
if(count == 1)
{
v.setBackgroundColor(Color.GREEN);
}
if(count == 2)
{
v.setBackgroundColor(Color.RED);
}
if(count == 3)
{
v.setBackgroundColor(Color.GRAY);
}
count ++;
}else{
EntryItemEchelon ei = (EntryItemEchelon)i;
v = vi.inflate(R.layout.item_entry, null);
final TextView title = (TextView)v.findViewById(R.id.tv_entryTitle);
final TextView score = (TextView)v.findViewById(R.id.tv_entryScore);
if (title != null)
title.setText(ei.Name);
if(score != null)
score.setText(ei.Score);
}
}
return v;
}
背景色を変更する if ステートメントを削除して問題を修正しました。SectionItem を構築するときに色を初期化する必要があるようにしました。