【发布时间】:2012-07-16 17:39:27
【问题描述】:
我正在尝试创建一个自定义Adapter,它可以处理要膨胀的任何类型的布局。泛型是指要在适配器中设置的任何类型的数据和任何类型的布局都可以与要为项目设置的事件侦听器一起使用。
例如:
我有一个联系人列表和一个国家/地区列表。联系人列表在其布局中有四个项目,即人物图像、姓名、号码和复选框。国家列表包含一个 CountryName(TextView) 和一个复选框。
是否有可能两者都使用同一个适配器并且该适配器处理所有类型的项目?
我希望在点击任何项目后刻度图像会重置。
【问题讨论】:
-
感谢您的回复。但这不是我要找的。它类似于我拥有的其他链接。让我为您提供一些更好的:D android.amberfog.com/?p=296 sudarmuthu.com/blog/… 如果您愿意,我可以为您提供更多:D ...但我正在寻找一个可以处理不同类型列表项的通用适配器。而且我不必对任何布局进行硬编码。
-
我不认为有任何通用的方法可以做到这一点。你可以做的是在膨胀你的视图之前添加一个
switch声明。但这没有任何意义......为什么你想要一个适配器?为每种类型的列表制作一个单独的适配器.. -
当我集中精力使用列表视图时,我对此进行了一些思考,但我只是想不出一种通用的方法可以在 getView() 中从适配器内的布局中膨胀项目。但是,我有一种感觉,如果我们将充气部分从适配器中取出并放入调用适配器的活动中,它可能会成功。如果我们可以将 ViewHolder 设计放入其中,事情也会变得更酷。我想我会重新考虑这一点。
-
@MMohsinNaeem:原因很简单。不要在每次有新请求进来时使用不同的项目布局设计创建单独的适配器。如果我们可以只有一个适配器,开发人员可以更轻松地重用适配器,同时只更改布局和项目。
标签: java android android-layout android-listview android-adapter