我正在尝试创建一个自定义Adapter
,它可以处理任何类型的布局。通用我指的是在适配器中设置的任何类型的数据,并且可以使用任何类型的布局来为项目设置事件监听器。
例如:
我有联系人列表和国家/地区列表。联系人列表在其布局中有四个项目,即人物图像,名称,编号和复选框。国家/地区列表包含CountryName(TextView)和复选框。
是否可以使用相同的适配器和适配器处理所有类型的项目?
我希望点击任何项目后刻度图像会重置。
答案 0 :(得分:3)
如果您有一个具有不同对象的List,它可以是不同类型并且需要显示不同的视图。这样做:
让对象自己定义视图。在每个对象上实现接口ViewProvider
。此接口应提供方法getView()
,然后可以在适配器中调用该方法。
现在,适配器只能将元素从ViewProviders
的列表中取出,并调用方法getView
来获取视图。
您不必担心视图的回收,因为视图存储在每个ViewProvider
中,并且只会创建一次。然后,也可以在Object端而不是在适配器中更新字段(如果有)。但您必须通过调用notifyDataSetChanged()