gpt4 book ai didi

android 如何将 hashset 放入适配器中以在 listview 中使用

转载 作者:行者123 更新时间:2023-12-05 00:07:40 25 4
gpt4 key购买 nike

这是我的问题,例如

我有一个定义对象收据的类这个类有一个 HashSet 中的所有收据

public static Set<Receipt> allInstances = new HashSet<Receipt>();

这里我还有 getNumber()、getDate() 等所有的 getter

现在在 android 中我想在 ListView 中显示收据我已经上课了 公共(public)类 ReceiptListFragment 扩展 ListFragment

这里是 OnCreate 方法我该怎么办?

我希望我的代码达到最佳性能我已经看到 listview 和 arrayadapter with ViewHolder to max performance codes in the web

我真正的问题是因为我有一个带有对象的 HashSet,所以我无法在 getView 方法中的适配器类中获取 getNumber 以在 textview 中设置文本我认为唯一的方法就是这样做

for(Receipt r : Receipt.allInstances){
TextView tv = (TextView) v.findViewById(R.id.receipt_row);
tv.setText("" + r.getNumber());

动态添加

但是这样做我没有使用适配器,性能会发生什么变化?也因为我有一个 HashSet 我没有位置它也可能有重复的对象(这是正常的和有意的)

我是否应该像以前一样做一个循环并将所有哈希集转移到一个列表中只是为了使用 ListView 并执行 setListAdapter这在性能方面看起来不太好,因为对象的数量可能很高

在性能方面最好动态地做或者将所有对象传递给一个列表,并使用带有 viewholder 的适配器等,就像所有示例一样

或者有更好的解决方案?

最佳答案

如果你想使用列表,你可以试试这个:

ArrayList<Receipt> receiptsList = new ArrayList<Receipt>(allInstances);

使用 receiptsList 创建您的 adapter 并使用 setListAdapter(adapter)。看这里:http://www.vogella.com/articles/AndroidListView/article.html#listfragments

关于android 如何将 hashset 放入适配器中以在 listview 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13237918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com