无法从数据库检索任何数据

时间:2020-09-22 19:12:39

标签: java android android-sqlite

我已将现有数据库导入到我的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();
        }
    }

1 个答案:

答案 0 :(得分:0)

拔掉头发两天后,我想出了一个答案。简而言之:使用终端中的sqlite或类似工具创建数据库,请勿使用外部.exe(如数据库浏览器)。我注意到,即使从DB浏览器中进行检查也可以看出,我从数据库浏览器创建和导入的数据库显示为空。我重新创建了表和值,但无济于事。然后,我用另一个名称创建了一个新数据库,并更改了Database Helper类,就像一个超级按钮一样工作。– –