Tôi đang ràng buộc một tài liệu XML với một bộ điều hợp tùy chỉnh. Tất cả các mục trong danh sách ban đầu có màu phông chữ màu trắng. Một trong các nút trong tài liệu XML có thuộc tính mà tôi đang kiểm tra và nếu thuộc tính được đặt, tôi muốn thay đổi màu phông chữ của mục đó trong ListView thành màu tối hơn. Mã tôi dường như làm việc ban đầu, nhưng nếu tôi cuộn danh sách lên và xuống, các mục trong ListView sẽ vẫn trắng, tự động thay đổi thành màu tối, vì một số lý do:tự động thay đổi màu phông chữ TextView trong ListView
Đây là mã bố cục của tôi:
<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>
và đây là bộ chuyển đổi tùy chỉnh của tôi:
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);
}
}
hoạt động. có vẻ đơn giản sau khi nhìn thấy giải pháp. cảm ơn! –