Bir grup sayıyı (ağırlık) gösteren bir Liste Etkinliği üzerinde çalışıyorum. ListView'de belirli bir satırın arka planını değiştirmek istiyorum. Bunu yapmak için ArrayAdapter sınıfının özel bir uygulamasını oluşturdum ve getView yöntemini geçersiz kıldım. Adaptör bir sayı listesi kabul eder ve satırın arka planını 20 ile sarı arasında (basit nedenlerden dolayı) ayarlar.Özel ArrayAdapter set getView'daki arka plan alanı
public class WeightListAdapter extends ArrayAdapter<Integer> {
private List<Integer> mWeights;
public WeightListAdapter(Context context, List<Integer> objects) {
super(context, android.R.layout.simple_list_item_1, objects);
mWeights = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
int itemWeight = mWeights.get(position);
if (itemWeight == 20) {
v.setBackgroundColor(Color.YELLOW);
}
return v;
}
}
sorun numarası 20 ile satır sadece sayı 0 (ilk satır) ile sarı bir arka plan değil, aynı zamanda satırı olur ve bu durumun nedenlerini emin değilim olmasıdır.
getView yönteminde yanlış bir şey yapıyorum (süper yöntemi çağırmak gibi)? Uygulamanızın gerekçeleri şöyledir: Tüm geri döndürülen görüşler aynı olmalıdır (bu yüzden süper yöntemi arıyorum) sadece ölçütler değiştirilmeli ise görünüm değiştirilmelidir.
Yardımlarınız için teşekkürler!
Görüyorum. Bu mantıklı, evet. Şimdi soru şu, bunu çözmenin en iyi yolu nedir. ConvertView'ı dönüştürme veya her ikisi için de stil niteliklerini ayarlama, eğer son ise, seçenekler? – Igor