У меня есть адаптер, который представляет список предметов. Мне нужно изменить цвет текста некоторых элементов на firstPosition и secondPosition. Список данных не изменяется, поэтому я не могу использовать notifyDataSetChanged. Как я могу это сделать?Как динамически менять цвет текста элемента в списке сетки с помощью пользовательского адаптера?
Это метод GetView в моем адаптере
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null){
convertView = LayoutInflater.from(context).inflate(R.layout.alphabet_item, parent, false);
holder = new ViewHolder();
holder.letterTextView = (TextView) convertView.findViewById(R.id.letter_text);
convertView.setTag(holder);
}
holder = (ViewHolder) convertView.getTag();
holder.letterTextView.setText(String.valueOf(alphabetList.get(position)));
if (firstPosition == position) {
holder.letterTextView.setTextColor(context.getResources().getColor(R.color.colorAccent));
} else if (secondPosition == position){
holder.letterTextView.setTextColor(context.getResources().getColor(R.color.colorPrimary));
} else {
holder.letterTextView.setTextColor(context.getResources().getColor(R.color.colorText));
}
return convertView;
}
firstPosition и secondPosition Заявляю, как Integer
код выглядит нормально. Попытайтесь добавить в 'else' оператор' holder = (ViewHolder) convertView.getTag(); ' –
Я не думаю, что это что-то изменит. Моя проблема заключается в том, что метод getView не является вызовом при вызове notifydataSetChanged –
Затем добавьте 'Log.i (TAG, msg); 'в' getView'. –