【问题标题】:How to access database from RecyclerView Adapter holder?如何从 RecyclerView 适配器持有者访问数据库?
【发布时间】:2021-06-24 19:45:27
【问题描述】:

我需要有关如何从数据库中获取数据的建议,或者任何最好的方法,从 RecyclerView 适配器 onBindViewHolder() 方法。基本上,我有一个 ViewHolder 循环通过的Transactions 列表,其中包含一个名为Payee 的相关实体的ID,我可以通过访问TransactiongetPayeeByID 方法获得它。 (该方法已经存在以提取存储库和 Dao 中的信息并且工作正常。)问题是,我如何从该屏幕访问该方法?我需要知道如何从这里获取它,以便我可以基于拉取的PayeeId 创建一个新的Payee,以便将holder.payee.setText 字段设置为关联Payee 的名称。我不知道如何从这里开始。

 @Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

    final Transaction transaction = tTransactions.get(holder.getAdapterPosition());


   holder.payee.setText( ????????? ) ;        
   holder.date.setText(date);
   holder.transAmount.setText(amount);

如果需要,我很乐意添加更多代码。

【问题讨论】:

  • 请更清楚地说明您想要实现的内容
  • @Levi 我正在尝试从上面的代码块访问数据库,以从与交易关联的 PayeeId 创建一个新的 Payee。我需要访问存储库吗?视图模型?如果是这样,我该如何从这里做到这一点,还是有其他方法可以做到这一点?希望澄清。

标签: android android-recyclerview sectionedrecyclerviewadapter


【解决方案1】:

我意识到了这个问题的解决方案。我刚刚创建了一个存储库实例并通过它访问了数据库。见下文:

 AppRepository repository = new AppRepository(tContext);

 final Payee payee = repository.getPayeeById(transaction.getPayeeId());

 holder.payee.setText(payee.getName());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多