【问题标题】:How to acces to my database in a recyclerview Android?如何在 recyclerview Android 中访问我的数据库?
【发布时间】:2017-04-04 23:30:54
【问题描述】:

我正在尝试使用 recyclerview 中的 buttonclick 更新我的数据: 我可以在 recyclerview 中显示我的数据库,现在我想在单击按钮时更新标记(就像 stackoverflow 的系统 btw 一样)。

所以,我在我的 Adapterwomen 上做了这个(用于 recyclerview),我想在单击按钮时调用它。

public void UpdateData() {
        myDb = new DatabaseHelper(this)
        String marksafter;
        int marksint = Integer.getInteger(marks.getText().toString());
        marksint = marksint + 1;
        marksafter = Integer.toString(marksint);
        myDb.updateData(id.getText().toString(),marksafter );

    }

但是“this”给了我一个错误,我可以用什么替换它?

【问题讨论】:

  • DatabaseHelper 的构造函数是什么? UpdateData 里面是什么类?
  • 我不想访问 RecyclerView 或其适配器中的数据库。让知道父 Activity 或 Fragment 来处理数据库操作。
  • @MelvinAuvray 您遇到了哪个错误?而且您不应该从适配器更新数据库。取而代之的是,您可以在适配器中使用一个接口来帮助您与活动或片段进行通信,然后使用它来更新活动或片段中的数据库。
  • @pk4393 我应该在哪里更新数据库?因为我想更新特定持有人中的数据“标记”,看我帖子的最后一张图片,我想独立于其他标记更改标记:
  • @MelvinAuvray 能否分享一下你的DatabaseHelper类的构造函数代码

标签: java android database sqlite android-recyclerview


【解决方案1】:

@MelvinAuvray 根据您的 DatabaseHelper 类的构造函数

public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, 1);
}

您应该将 Activity 引用或 Application 引用传递给

myDb = new DatabaseHelper(this);

但是你传递 ViewHolder 引用它是错误的。

对于数据库设计模式,您可以参考这篇文章

http://wale.oyediran.me/2015/04/02/android-sqlite-dao-design/

【讨论】:

  • 我该怎么做?你能给我一个例子或东西吗?如何在 ViewHolder 中传递 Activity 引用或 Application 引用而不是 ViewHolder ?
  • 很抱歉我没有抓住它,我怎样才能在我的回收站视图中获取我的数据库呢?如果我不能,我该如何解决这个问题?
  • @MelvinAuvray 您可以在 onCreate() 方法中将 DatabaseHelper 初始化为您的活动,然后使用接口将数据从适配器传递到活动或片段,每当您点击一个项目时,以及在获取数据到您的活动或片段,您应该将数据更新到数据库
  • 具有出色设计模式示例的绝妙技巧。帽子没了
猜你喜欢
  • 2023-03-26
  • 1970-01-01
  • 2019-04-13
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多