我有两个具有相同布局的适配器,除了在constructer中传递的参数之外的所有内容都是不同的,所以为此我必须使两个不同的适配器相同,但只是构造不同。
public MoviePackageGridAdapter(Context context, int resourceId,
ArrayList<MoviePackage> packageList) {
super();
this.context = context;
this.resourceId = resourceId;
this.packageList = packageList;
}
另一个是:
public PackageGridAdapter(Context context, int resourceId,
ArrayList<ChannelPackage> packageList) {
super();
this.context = context;
this.resourceId = resourceId;
this.packageList = packageList;
}
适配器里面的所有内容都是相同的。我想为两种不同类型的对象使用相同的适配器。我怎样才能做到这一点?
答案 0 :(得分:1)
不可能让两个constructors
采用相同的参数。但是你可以在第二个标志上添加一个标志,指出你传递的对象,如:
boolean isChannelPackage;
public MoviePackageGridAdapter(Context context, int resourceId,
ArrayList<MoviePackage> packageList) {
super();
this.context = context;
this.resourceId = resourceId;
this.packageList = packageList;
this.isChannelPackage = false;
}
public PackageGridAdapter(Context context, int resourceId,
ArrayList<ChannelPackage> packageList, boolean isChannelPackage) {
super();
this.context = context;
this.resourceId = resourceId;
this.packageList = packageList;
this.isChannelPackage = isChannelPackage;
}
您可以使用标记isChannelPackage
来指示您收到的数据类型。