我是一名新的 Android 开发人员,似乎有点过头了。当我向列表中添加更多内容时,我正在尝试更新 listView。
ListView 基于 SQLite 数据库。我能够通过为 SQLite 数据库创建一个 ContentProvider 来使 ListView 基于 SQLite 数据库(这里建议)。现在我的问题是我想更新 SQLite 数据库并将其反映在 ListView 上。我正在使用加载器,根据这一点,如果我正确实施了加载器,它将监控数据。
我尝试直接更新 SQLite 数据库,但这并没有导致 ListView 在不关闭和重新打开的情况下更新。我的直觉是我应该在我的 contentProvider 中实现 insert 方法。我做了一个非常简单的实现:
@Override
public Uri insert(Uri uri, ContentValues contentValues) {
return ContentUris.withAppendedId(uri, mCollectionDB.insertCollection(contentValues));
}
不幸的是,结果是我的应用程序因“java.lang.NullPointerException”而崩溃。这尤其令人困惑,因为使用完全相同的 contentValues 从我的 MainActivity 调用 .insertCollection 没有问题。
我真正感兴趣的问题是当我将数据插入 SQLite 数据库时如何让我的 listView 更新。如果插入 ContentProvider 无关紧要,请忽略它。我不确定我哪里出错了,所以我不确定其他代码可能有用,但如果有帮助,我很乐意编辑更多代码。