- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我对android 网站上的记事本教程有一个简短的问题。我在教程代码中写了一个简单的函数来删除整个数据库。它看起来像这样:
public void deleteDatabase() {
this.mDb.delete(DATABASE_NAME, null, null);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, DELETE_ID, 0, "Delete whole Database");
return result;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case DELETE_ID:
mDbHelper.deleteDatabase();
return true;
}
return super.onOptionsItemSelected(item);
}
但是当我运行应用程序并尝试删除数据库时,我会在 LogCat 中收到此错误:
sqlite 返回:error code = 1, msg= no such table: data
你能帮忙解决这个问题吗?似乎函数 deleteDatabase 无法访问数据库。
非常感谢。
菲利克斯
感谢您的帖子。现在我更新了代码:
public boolean deleteDatabase(Context context) {
return context.deleteDatabase(DATABASE_NAME);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, DELETE_ID, 0, "Delete whole Database");
return result;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case DELETE_ID:
mDbHelper.deleteDatabase(this);
return true;
}
return super.onOptionsItemSelected(item);
}
但是现在我必须重新启动数据库被删除的应用程序。应用程序运行时我没有工作。
最佳答案
您在 SQLiteDatabase 中使用的 delete
方法对象是删除表,而不是数据库。
查看 Context 中的 delete
方法
编辑:
尝试直接从您的 Activity 调用:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case DELETE_ID:
deleteDatabase(DATABASENAME);
return true;
}
return super.onOptionsItemSelected(item);
}
你现在调用的方式是从 SQLliteDatabase
对象中删除一个数据库,所以我猜它不会删除数据库,直到不再有对它的引用。
关于android - 记事本教程 : deleteDatabase() function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4529760/
我是编程新手,我开始创建一个简单的记事本,只有 4 个按钮(打开、保存、新建和字体)。 如果我打开或保存我收到一个错误:这是我的代码: //Declare save as a new
我用vba编写了一个宏,它用记事本打开一个文本文件,选择所有txt并将其复制到Excel。我每天必须以这种方式处理大约 100 个文件,并且我想保留我观察到的闪烁图像。代码可以工作,但问题是命令 Ap
所以我一直在寻找将我创建的 JSON 数据库连接到 Java 程序的方法,我似乎找不到适合这种特定情况的任何内容,因此我尝试使用 JDBC 教程(http://www.tutorialspoint.c
我想在记事本中显示一个消息框,所以我找到了一个简单的dll 注入(inject)示例。注入(inject)器本身不是我的并且似乎工作正常(获取进程的 id ,创建一个远程线程,获取 dll 文件的绝对
Dim ProcessProperties As New ProcessStartInfo() ProcessProperties.FileName = "notepad.exe" ProcessPr
我使用 Process.Start() 从我的程序中打开一个记事本,但新打开的记事本覆盖了屏幕。但我确实希望我的应用程序保持其焦点。 我类似地(使用相同的 Process.Start)打开 MS Ex
之前进行Web开发的时候使用的是myeclipse,但只用过的人都知道,由于其插件太多,而且有很多插件的功能根本就接触不到。所以导致一旦工程稍微大一点就会很卡,虽然之前也对其进行优化过,但还是觉得不
在 android Notes 演示中,它接受 URI: sUriMatcher.addURI(NotePad.AUTHORITY, "notes", NOTES); sUriMatc
我想知道,如何将 Redhat 中的 vi 编辑器中的整行文本复制到 Windows 中的记事本中。 如果要复制的文本尺寸很小,可以通过鼠标选择行并复制到记事本来轻松完成。但是我遇到过复制数千行的情况
主要目的是了解是否有办法从 UMDF(用户模式驱动程序框架)事件启动或执行任何用户模式应用程序。事件无关紧要。任何事件都可能起作用,例如DriverEntry、DeviceAttach 我正在研究一种
我有制表符分隔的值,需要使用 Java 将其导出为文本文件,以便在 Microsoft Excel 中打开。当制表符分隔值包含中文字符时就会出现问题。 我尝试使用 UTF-8 导出文本文件,但 Exc
我们如何管理使用 Win32 api 运行的应用程序的 wndproc 函数?我使用的软件语言是 Go。 我尝试了不止一种方法,但无法做到。你能帮我吗? I am learning the HANDL
我在源代码管理中打开历史记录,然后打开一个变更集,然后在文件列表中选择一个文件并双击打开它。 TFS 通过记事本打开文件,我想通过 Visual Studio 或任何其他文本编辑器(以突出显示语法)打
Win32的FindWindow()可以找到标题为“Untitled - Notepad”的窗口,但是如果我只想找到一个记事本窗口但不知道是不是“try. bat - 记事本”或标题栏上的其他文件名?
我是一名优秀的程序员,十分优秀!