這裏是我的問題,例如機器人如何把HashSet的在適配器列表視圖使用
我有一個類定義對象收據 這個類有HashSet的所有收據
public static Set<Receipt> allInstances = new HashSet<Receipt>();
在這裏我也有getNumber(),GETDATE(),等所有的干將
現在在Android,我想在ListView 我已經有了類 公共類ReceiptListFragmen顯示收據t擴展ListFragment
這裏的OnCreate方法 我該怎麼辦?
我要爲我的代碼 我已經看到了ListView和與ViewHolder arrayadapter到最大性能代碼在網絡最大性能
我真正的問題是 ,因爲我有一個對象HashSet的我不能得到適配器類的getView方法getNumber設置文本中一個TextView 我認爲唯一的辦法是做這樣的
for(Receipt r : Receipt.allInstances){
TextView tv = (TextView) v.findViewById(R.id.receipt_row);
tv.setText("" + r.getNumber());
動態添加
但這樣做我沒有使用適配器會發生什麼性能? 還因爲我有一個HashSet的我沒有位置 還可能有反覆的對象(這是正常的和預期的)
我應該做一個循環像以前一樣,所有的HashSet的傳送到一個列表只是使用ListView做setListAdapter 這看起來並不在性能方面非常不錯,因爲對象的數量可以在性能方面是高
,最好做dymically 或 所有對象傳遞給一個列表,並使用適配器與視圖等等像所有的例子那裏
還是有更好的解決方案?
如果你有一個很長的listview,你關心性能,那麼你想使用一個適配器(並利用convert-view)。你可以迭代你的HashSet,並把你想要的* strings *放入座標arraylist中,並使用它們來工作你的適配器。就性能而言,這比處理對象本身更好。如果你不想再有對象,你應該在每個收據中放置一個'setPosition()'方法,然後只在getview中採取行動,如果正確的'getPosition()'對象匹配你想要的hascode,但我認爲第一個解決方案是更加直截了當 – mango