2

我正在开发一个应用程序来发展我的知识到目前为止,我已经创建了一个日历应用程序,用户可以在单击日期时进行预约。然后我有一个删除按钮,可以打开在新活动中创建的所有约会,我有:一个显示所有约会的列表视图一个显示所选约会(由用户选择删除)的文本视图和一个按钮删除。删除按钮从sqlite中删除所有项目,但我只能在应用程序重新启动时看到这个工作我知道我的代码中缺少其他内容..我如何同时清除列表视图任何帮助将不胜感激

我的代码:

删除所有方法

public void deleteAll() {

        db.delete(TABLE_NAME, null, null);
    }

按钮代码:

public void onClick(View v) {
    switch(v.getId()){

    case R.id.removeBtn:

        dm.deleteAll();

        break;
    }

谢谢你 }

4

3 回答 3

3

也许不是最优雅的,但我不在 onCreate() 中构建我的 UI。相反,在 onCreate() 中,我调用了另一个方法 initializeUI(),这就是我构建用户界面的地方。然后,每当我做一些应该反映在界面中的事情(更新数据库或其他)时,我只需要再次调用我的方法 initializeUI()。

编辑:还可以查看您的适配器的 notifyDataSetChanged(),如此处所示

于 2012-04-19T22:21:40.497 回答
1

首先检查你的数据库是否可写(getWritableDatabase)

然后检查您的“TABLE_NAME”实际上是表名。

然后你可以尝试使用 execSQL("delete from " + TABLE_NAME);

如果这不起作用,您可以尝试关闭数据库。

最后尝试将其放入事务 beginTransaction(); .. 删除.. endTransaction();

于 2012-04-19T22:12:41.543 回答
1

如果您实际上正在更改 ListView 中使用的 Adapter 的数据,则可以在用于填充 Adapter 的游标上使用 requery() 方法。这应该反映您的更改!

于 2012-04-19T22:48:52.713 回答