我正在尝试为我的应用程序创建一种调试视图,它获取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();
}
答案 0 :(得分:-1)
在您的gradle文件中。
让你的记忆更大:
minHeapSize = '512m'
maxHeapSize = '5120m'