如何显示活动中表的所有SQLite记录?

时间:2017-04-27 19:51:59

标签: android sqlite android-sqlite

我正在尝试为我的应用程序创建一种调试视图,它获取SQLite数据库中的所有表名,并将它们放在活动的微调器中。当您从微调器中选择一个表时,它应该替换布局中显示该表的所有记录的片段。

目前我正在创建一个表行,然后为记录的每一列添加一个文本视图,然后将该行附加到布局中的表中,但这似乎对平板电脑造成负担。它适用于只有少量记录的表,但在具有大量记录的表上的logcat中出现OutOfMemory错误。

我考虑使用一个利用视图回收的适配器,但不确定如何处理,因为我无法确定每个表的确切列数。显示这么多信息的最佳方式是什么?这是我目前使用的代码:

private void getRecords() {
    Cursor cursor = sqLiteDatabase.rawQuery("SELECT * FROM " + tableName, null);
    if (cursor.moveToFirst()) {
        do {
            TableRow row = new TableRow(getContext());
            for (int i = 0; i < cursor.getColumnCount(); i++) {
                TextView textView = new TextView(getContext());
                TableRow.LayoutParams textViewParams = new TableRow.LayoutParams(350, TableRow.LayoutParams.WRAP_CONTENT);
                textViewParams.setMargins(25, 25, 25, 25);
                textView.setLayoutParams(textViewParams);
                textView.setText(cursor.getString(i));
                row.addView(textView);
            }
            table.addView(row);
        } while (cursor.moveToNext());
    }
    cursor.close();
}

1 个答案:

答案 0 :(得分:-1)

在您的gradle文件中。

让你的记忆更大:

    minHeapSize = '512m'
    maxHeapSize = '5120m'