Я просто хотел создать подкласс SimpleAdapter и поиграть с изменением цвета в зависимости от положения (и других параметров, делающих элементы более красивыми и отличимыми друг от друга), но у меня возникли проблемы с перезаписью метода getView. Я просто скопировал код из метода, который вызывается в исходном методе getView в классе SimpleAdapter, то есть createViewFromResource, и теперь мой код выглядит так:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater)thecontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(layoutResource, parent, false);
} else {
v = convertView;
}
bindView(position, v);
return v;
}
Здесь нет ничего ломающего игру, как я уже сказал, это 95% копия и вставка из исходного источника адаптеров, я просто взял некоторые переменные из моего конструктора вместо частных переменных, объявленных в суперклассе, поскольку я не могу получить к ним доступ в подклассе. Моя проблема заключается в методе bindView, который вызывается непосредственно перед возвратом представления. Eclipse не дает мне никакого намека на то, что это делает, и я также не могу вызвать его из своего подкласса.
Метод bindView(int, View) не определен для типа ChangingColorAdapter
Это то, что я получаю, если использую приведенный выше код, хотя я скопировал его из исходного кода. Мне кажется немного странным. Я программирую на уровне API 8 (2.2) и прикрепляю исходники. Если я взгляну на исходный код SimpleAdapters, редактор не сможет сказать мне, куда идет вызов bindView, но он не выдает никаких ошибок.
Я что-то не так понял или что вызывает эту проблему? Кажется, я не могу найти никакой документации или описания метода bindView, только примеры реализации, в основном из адаптеров курсора. Любые подсказки были бы замечательными.
Ваше здоровье