我已将现有数据库导入到我的Android Studio项目中。我正在尝试在数据库上运行搜索查询,并将结果提供给我的回收站视图,但看来我从数据库中获得的所有内容均为空或类似...。我尝试删除WHERE参数,但是没有用。也许这是一个愚蠢的问题,但这是我的第一个现实世界项目,我有点迷失了,感谢您的帮助。
class BackgroundRunnable implements Runnable {
private String name;
public BackgroundRunnable(String name) {
this.name = name;
}
@Override
public void run() {
Log.d(TAG, "code is in the Runnable");
final Map<Integer, String> backgroundmap = new HashMap<>();
DatabaseAccess mydatabase = DatabaseAccess.getInstance(getContext());
mydatabase.open();
Cursor cursor = mydatabase.SearchbyName();
if (cursor != null && cursor.moveToFirst()) {
for (int i = 0; i < cursor.getCount(); i++) {
Log.d(TAG, "MainFragment code in cursor result:" + cursor.getString(cursor.getColumnIndex("name")));
backgroundmap.put(cursor.getInt(cursor.getColumnIndex("id")), cursor.getString(cursor.getColumnIndex("name")));
cursor.moveToNext();
}
cursor.close();
mainHandler.post(new Runnable() {
@Override
public void run() {
keyList.addAll(backgroundmap.keySet());
valueList.addAll(backgroundmap.values());
adapter.setvalues(keyList, valueList);
}
});
}
mydatabase.close();
}
}
答案 0 :(得分:0)
拔掉头发两天后,我想出了一个答案。简而言之:使用终端中的sqlite或类似工具创建数据库,请勿使用外部.exe(如数据库浏览器)。我注意到,即使从DB浏览器中进行检查也可以看出,我从数据库浏览器创建和导入的数据库显示为空。我重新创建了表和值,但无济于事。然后,我用另一个名称创建了一个新数据库,并更改了Database Helper类,就像一个超级按钮一样工作。– –