0

我意识到,如果您尝试扩展 SimpleAdapter 类,则必须将构造函数公开 -

public MySimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) {
    super(context, data, resource, from, to);
}

但这会使某人(或我)可能不小心创建一个新适配器,对吗?

我试图使适配器中的所有数据和方法都是静态的,但这似乎不是正确的做事方式......?对不起,我不是太挑剔。我只是不希望有人意外实例化 MySimpleAdapter 的实例

我应该如何让这个类成为单身人士?

我使用 SimpleAdapter 的方式是我用它作为一个容器来保存我在动态收缩/增长的列表视图中需要的所有对象。在应用程序中的任何位置,都应该只有一个这样的容器。我是否正确地解决了这个问题?

4

2 回答 2

1

为什么必须公开构造函数?忽略想要使其成为单例的原因,完全可以声明扩展 SimpleAdapter 的类具有私有构造函数并具有实现单例模式的公共 createInstance() 方法。

于 2012-02-03T04:32:09.983 回答
1

您真的不想让适配器成为静态单例。这样做的原因是它具有对上下文的引用。通过使适配器静态,上下文将永远不会被垃圾收集。

如果有的话,您想保留List. 在每个活动中,只需传入对共享列表的引用即可。

于 2012-02-03T04:39:11.423 回答