如何让android recycler视图适配器接受不同的数据类型?

时间:2016-06-22 23:32:40

标签: java android android-adapter greendao

我有很多回收者的观点,他们都使用相同的适配器,我曾经用ID的对象的arraylists更新它们,因为我这样做了

ADAPTER

private List<CardWriter> cardMakerList;


public CardAdapter(List<CardWriter> cardMakerList){
    this.cardMakerList = cardMakerList;
   // this.mContext = context;
}

活性

 public List<CardWriter> cardMakerList = new ArrayList<>();
 public CardAdapter cardAdapter;
 recyclerView.setAdapter(cardAdapter);
 CardWriter cardWriter = new 
 CardWriter(getResources().getDrawable(R.drawable.happy),"HAPPY","happy ");
 cardMakerList.add(cardWriter);

问题

我现在切换到为每个回收站视图使用数据库(使用greenDao参见this问题),所以我的适配器现在使用下面的代码(addNewCard指的是由greendao生成的生成的java类)

 public List<addNewCard> leaseList = new ArrayList<>();

但现在要让我的第二个数据库(2)具有完全相同的属性,但greendao会生成不同的文件,所以我应该在我的适配器中使用它

 public List<addSimpleCard> leaseList = new ArrayList<>();

但这意味着每个数据库都有一个新的适配器,我需要很多。我正在制作的所有数据库只是许多具有不同属性的相同对象(图像和2个字符串),但每个数据库都需要单独管理。 我的上一个问题(在上面的链接中)询问我如何使用不同的标题制作所有相同的数据库,我认为这也可以解决我的问题。

我做了什么 我试过创建一个对数组列表的静态引用并将其传递给新的例如:

public static CardAdapterDB cardAdapterDB;

cardAdapterDB = new CardAdapterDB(leaseList);

这可行,但尝试将其更改为新数据库

cardAdapterDB = new CardAdapterDB(simpleleaseList);

给我一​​个错误

  CardAdapterDB(java.util.List<greendao.addNewCard>)中的

CardAdapterDB无法应用于(java.util.List<greendao.addSimpleCard>)

addSimpleCard是我的另一个由greendao生成的java文件的名称,所以这非常有意义,但是如何在不创建大量新适配器并一直切换它们的情况下解决这个问题?

因为要求我已经尝试了多种方法来使其工作但尚未找到合适的东西

0 个答案:

没有答案