我有自己的班级订单,里面有很多字段。我使用自定义的 ArrayAdapter 将它们的 LinkedList 放到 ListView 中。但是我需要将每个订单对象与listView的对应视图绑定。我试图实现 listView 的 getChildView() 方法,但它对我来说不能正常工作。请告诉我如何为此实施强大而快速的解决方案?我应该为此使用 LinkedList 吗?或者我应该创建自己的数据容器?此外,在我看来,向 Order 对象添加一个 View 字段似乎会降低性能。
问问题
133 次
1 回答
0
我通过使用 HashMap 解决了这个问题。我使用单调模式创建和使用哈希图:
public class OrdersViewMapSingletone {
Map<Order, View> arrayList;
private static OrdersViewMapSingletone instance;
private OrdersViewMapSingletone()
{
arrayList = new HashMap<Order,View>();
}
public static OrdersViewMapSingletone getInstance(){
return instance;
}
public static void initInstance()
{
if (instance == null)
{
instance = new OrdersViewMapSingletone();
}
}
public Map<Order, View> getOrderViewMap()
{
return arrayList;
}
@Override
public String toString()
{
return getOrderViewMap().toString();
}
}
在我的 OrderAdapter 中:
Map<Order, View> orderViewMap = OrdersViewMapSingletone.getInstance().getOrderViewMap();
在 getView() 方法中添加项目:
orderViewMap.put(order,row);
以及在活动中获取项目的这种方法:
public View getMapedView(Order order)
{
return this.orderViewMap.get(order);
}
对我很好。性能比使用 ArrayList 好得多。
于 2013-05-31T15:29:33.963 回答