【问题标题】:How to get data from database to arraylist and show them如何从数据库获取数据到arraylist并显示它们
【发布时间】:2021-01-25 08:11:40
【问题描述】:

我正在尝试从数据库中获取数据到arraylist,然后显示它们。不幸的是我得到了这个

错误:java.lang.OutOfMemoryError: OutOfMemoryError

在试图抛出异常时抛出;没有可用的堆栈跟踪。我正在使用自己的对象类,它们存储在数据库中。

MainActivity 代码:

narodyList = db.getVsechnyNarody(); 
String k = narodyList.get(1).toString();
Toast.makeText(getApplicationContext(),"Záznam" + k,Toast.LENGTH_LONG).show();

DatabaseHandler.java:

 public List<Narody> getVsechnyNarody(){
        List<Narody> narodyList = new ArrayList<Narody>();
        String selectQuery = "SELECT  * FROM " + TABLE_NARODY;
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        if(cursor.moveToFirst()){
            do {
                Narody narod = new Narody();
                narod.setId(Integer.parseInt(cursor.getString(0)));
                narod.setNazevNaroda(cursor.getString(1));
                narodyList.add(narod);
            } while (cursor.moveToFirst());
        }
        cursor.close();
        db.close();
        return narodyList;
    }

【问题讨论】:

    标签: java android database arraylist


    【解决方案1】:

    错误可能在第 13 行。

    这条线让你陷入无限循环(每次执行循环时你都会移动到第一行):

    } while (cursor.moveToFirst());
    

    用这一行替换它:

    } while (cursor.moveToNext());
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      • 2020-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多