Я привязываю XML-документ к пользовательскому адаптеру. Все элементы в списке изначально имеют цвет шрифта белого цвета. Один из узлов в документе XML имеет атрибут, который я проверяю, и если атрибут установлен, я хотел бы изменить цвет шрифта этого элемента в ListView на более темный цвет. Код, который у меня есть, кажется, работает изначально, но если я прокручиваю список вверх и вниз, элементы в ListView, которые должны оставаться белыми, автоматически меняются на темный цвет, по какой-то причине:динамически меняет цвет шрифта TextView в ListView
Вот мой код макета:
<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>
и вот мой заказ адаптер:
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);
}
}
который работал. кажется таким простым после просмотра решения. благодаря! –