modifier dynamiquement TextView la couleur de la police dans la ListView

Je suis de la liaison d'un document XML vers un adaptateur personnalisé. Tous les éléments dans la liste, initialement, une police de couleur blanche. L'un des nœuds dans le document XML est un attribut que je vérifie et si l'attribut est défini, j'aimerais changer la couleur de la police de l'élément dans la liste pour une couleur plus foncée. Le code que j'ai semble fonctionner au début, mais si j'ai faites défiler la liste vers le haut et vers le bas, les éléments de la liste qui doit rester blanc, de changer automatiquement à la couleur sombre, pour une raison quelconque:

Voici ma mise en page de code:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
 android:orientation="vertical">
 <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/text"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:textSize="15dip" 
    android:textColor="#ffffff"
    android:textStyle="bold"
    android:padding="5px"
     />
 </LinearLayout>

et voici mon adaptateur personnalisé:

 private class CustomAdapter extends BaseAdapter 
{       
private ArrayList<FilterItem> mData = new ArrayList<FilterItem>();
private LayoutInflater mInflater;
public CustomAdapter() {
mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public void addItem(FilterItem item) {
mData.add(item);
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int position) {
return mData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
FilterItem item = (FilterItem)this.getItem(position);
if (convertView == null)
{
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.main, null); 
holder.text = (TextView)convertView.findViewById(R.id.text);
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
TextView tvText = holder.text;
tvText.setText(item.getTitle());
if (item.Read())
{
tv.setTextColor(Color.Gray);
}
return(convertView);
}
}
InformationsquelleAutor Kris B | 2011-08-21