问题标签 [sqliteopenhelper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
25064 浏览

android - SQLiteOpenHelper - 在 SD 卡上创建数据库

在我的测试 android 应用程序中,我打算创建和访问数据库文件,该文件将位于 SD 卡上。我在扩展 SQLiteOpenHelper 的类的帮助下使用主要活动。我想像以前一样使用它,但我必须以某种方式更改数据库 PATH。你知道,如何实现吗?

谢谢

我当前扩展 SQLiteOpenHelper 的类的代码:

我的主要代码:

0 投票
1 回答
3965 浏览

android - Android 不更新 SQLite 数据库

我的 Android 应用程序中的 SQLite 数据库遇到了一些问题。问题是数据库永远不会更新,即使在多次重新启动模拟器、Eclipse 或从 DDMS 删除之后也是如此。

这是我的 onCreate 方法,位于扩展 SQLiteOpenHelper 的类中:

实例化助手后,我请求对数据库的引用:

似乎未执行 rawQuery 语句(稍后添加),并且正在使用的数据库是从以前的版本缓存的。我也尝试更改数据库的版本,但没有奏效。我错过了什么吗?提前致谢。

0 投票
1 回答
562 浏览

android - Android 将 ContentProvider 分发为与应用程序捆绑的库

我正在开发一组新颖的应用程序,它们共享它们的基本行为(从数据库中挑选随机单词并将它们组合起来)。因为它们的工作原理基本相同,所以我尝试将代码的基础视为某种模板,但结果好坏参半。

当我正在进行更新时,我想让项目对 MVC 更加友好,并开始研究使用 ContentProvider 而不是直接的 SQLiteOpenHelper。我倾向于这种方式,因为谷歌的文档非常坚持使用它们。我的问题是在命名冲突领域。

TL; DR 跳过这里的问题。

如果两个第 3 方 Android 应用程序(由同一开发人员制作)都想使用相同的 ContentProvider,但不依赖于正在安装的另一个应用程序,它们是否都可以包含 ContentProvider 的副本(具有相同的权限和所有内容)并被允许同时安装(使用可用的最高版本的 ContentProvider)?

我不确定这是否可以通过内容提供者的设置方式实现,这似乎是单一的。我无法想象 Google 没有将此视为潜在问题或所需功能。是的,可能会出现一些复杂性,但我们已经克服了 dll 地狱和其他类似名称的问题……正确地做并不是那么困难。

0 投票
1 回答
3249 浏览

android - DatabaseObjectNotClosedException

我注意到关于这个例外有几个问题。但他们并没有解决我的问题。

我有一个 databaseHelper 类,它有一个扩展 SQLiteOpenHelper 的内部类:

我有一项服务可以不断更新数据库。还有一个从 db 获取数据的活动。

在服务和活动中都创建了 dbHelper:

我确实得到了 DatabaseObjectNotClosedException。我需要关闭 DatabaseHelper 吗?我该怎么做?或者我该如何解决这个问题?

0 投票
3 回答
12569 浏览

android - Android AsyncTask 和 SQLite 数据库实例

我有一个问题,我不知道如何解决它。我的应用程序中的一个活动有多个AsyncTasks 访问单个SQLiteOpenHelper. 我初始化并打开助手,onCreate()然后将其关闭onStop()。我还检查它是否已在onResume().

自从我发布了我的应用程序以来doInBackground,我在尝试访问 DB 帮助程序时收到了许多带有 Null Exception 的错误。我知道这是因为数据库在被调用onStop()之前关闭(),这很公平。doInBackground

我的问题是,我应该在哪里关闭数据库连接?在 Activity 中使用 DB 助手的单个实例并从多个线程()访问它是否正确AsyncTasks?或者我应该为每个使用单独的数据库助手实例AsyncTask

这是我的活动的简化骨架:

0 投票
1 回答
304 浏览

android - 是否可以在 Android 中使用 ContentProvider 并直接访问数据库?

我有使用直接数据访问它的数据库的应用程序。对于其他应用程序,我没有任何东西可以暴露在它之外。正如 CommonsWare 在 SO 上的某处所说,“如果你没有什么可公开的 - 不要使用 ContentProvider”。现在,我想添加小部件以显示其中一个表中的几个字符串,存储在数据库中。我应该将直接访问代码重构为ContentProvider模式吗?有没有办法从小部件直接访问数据库?有没有办法在一个应用程序中同时拥有 ContentProvider 和直接访问数据库?

0 投票
1 回答
624 浏览

android - onCreate 不是 SQLiteOpenHelper 的构造函数,但我需要它用于 getIntet

我需要使用getIntent,但不能这样做,因为据我了解,它不是SQLiteOpenHelper 的构造函数,并且需要在onCreate 中使用getIntent。

在这种情况下,我将如何从 SQLiteOpenHelper 中访问它?

基本上,我试图让以下代码在 SQLiteOpenHelper 中工作,但遇到了麻烦。

我正在尝试根据 String 的值对数据库进行查询排序。像这样:

这是整个长度的代码:

}

0 投票
1 回答
1670 浏览

android - 从库项目中的 MyApplication 调用 super.getWritableDatabase() 时崩溃

我确实有几个以相同方式设计的应用程序。扩展的应用程序拥有数据库连接,扩展的 SQLiteOpenHelper 拥有所有代码。

这在标准 android 项目中使用时有效。

当扩展应用程序位于库项目中时,它会崩溃。

以下代码是扩展的应用程序类。它位于图书馆项目中。如果在库项目中使用它会崩溃,但如果它是没有库项目的标准 Android 应用程序的一部分,则不会崩溃。我试图将 MyApplication 类从库项目移动到项目中(更改清单中的名称) - 没有成功。

我的猜测,但我只是在这里钓鱼,是 MySQLiteOpenHelper 使用库项目的权限/权限/位置,而不是项目本身。

这是扩展 SQLiteOpenHelper 类的一部分:

这是图书馆项目的清单:

这是项目清单的一部分:

我不知道为什么这不起作用。也许是上下文的事情,但错误指向文件。我没有任何线索。

这种方法有问题吗?它在标准的 Android 项目环境中运行完美。

提前谢谢了。

编辑:

Stacktrace 在 Log.d 中显示崩溃,但失败的是数据库调用:

0 投票
1 回答
663 浏览

android - Android SQLITE 数据库和微调器

嗨极客我是 android 新手,实际上我需要将所选数据的代码从 Db 添加到微调器中,在微调器中,当我选择一个项目时,它应该向我显示来自 Db 的列的详细信息。数据库的字段:1.银行名称 2.帐号 3.金额详细信息 4.任务注意:(要添加到微调器的银行名称,当我在微调器中选择银行名称时,它应该显示帐号,金额详细信息和列表视图中的任务)。

0 投票
1 回答
415 浏览

android - 带有 SQLite 数据库的 Android Spinner

我已经使用 MyOnItemSelectedListener 将项目填充到 Spinner 中并且它可以工作。我的问题是如何在 Spinner 下方的列表视图中设置数据库详细信息。onItemSelected之后应该写什么代码?