вот моя проблема, например
у меня есть класс, который определяет квитанцию объекта, этот класс имеет все квитанции в HashSet
public static Set<Receipt> allInstances = new HashSet<Receipt>();
здесь у меня также есть getNumber(), getDate() и т. д. все геттеры
теперь в Android я хочу отображать квитанции в ListView, у меня уже есть класс public class ReceiptListFragment extends ListFragment
здесь о методе OnCreate, что мне делать?
мне нужна максимальная производительность для моего кода, я уже видел listview и arrayadapter с ViewHolder для кодов максимальной производительности в Интернете
моя настоящая проблема заключается в том, что у меня есть HashSet с объектами, которые я не могу получить в классе адаптера в методе getView getNumber, чтобы установить текст в текстовом представлении, единственный способ, которым я думал, делал это так
for(Receipt r : Receipt.allInstances){
TextView tv = (TextView) v.findViewById(R.id.receipt_row);
tv.setText("" + r.getNumber());
добавление динамически
но при этом я не использую адаптер, что произойдет с производительностью? также, поскольку у меня есть HashSet, у меня нет позиции, и у него могут быть повторяющиеся объекты (это нормально и задумано)
Должен ли я сделать цикл, как раньше, и передать весь хэш-набор в список только для того, чтобы использовать список и выполнить setListAdapter, это выглядит не очень хорошо с точки зрения производительности, поскольку количество объектов может быть высоким.
с точки зрения производительности лучше делать это динамически или передавать все объекты в список и использовать адаптер с просмотрщиком и т. д., как и во всех примерах.
или есть лучшее решение?
setPosition()
в каждую квитанцию, а затем предпринимать действия в getview только в том случае, если правильный объектgetPosition()
соответствует желаемому хэш-коду, но я думаю, что первое решение гораздо более прямолинейно. - person mango   schedule 05.11.2012