问题描述
我想将以下信息打印到 Android 中的 logcat 窗口:
• 数据库版本号(使用db.getVersion() 作为版本号)。 • 游标中的列数。 • 游标中列的名称。 • 游标中的结果数 • 游标中的每一行结果
我在我的应用程序末尾创建了以下类来完成此操作:
public void printCursor(Cursor c,int version) {
int dbVersion = version;
int numberCursorColumns = c.getColumnCount();
String[] nameCursorColumns = c.getColumnNames();
int numberCursorResults = c.getCount();
List<Message> cursorRowValuesList = new ArrayList<>();
String cursorRowValues;
c.moveToFirst();
if (c.moveToFirst()) {
int sendColIndex = c.getColumnIndex(MyOpener.COL_TEXT);
int typeColIndex = c.getColumnIndex(MyOpener.MESSAGE_TYPE);
int idColIndex = c.getColumnIndex(MyOpener.COL_ID);
String send = c.getString(sendColIndex);
int type = c.getInt(typeColIndex);
long id = c.getLong(idColIndex);
cursorRowValuesList.add(new Message(send,type,id));
}
cursorRowValues = TextUtils.join(",",cursorRowValuesList);
Log.i("DATABASE VERSION",Integer.toString(dbVersion));
Log.i("NUMBER OF COLUMNS",Integer.toString(numberCursorColumns));
Log.i("COLUMN NAMES",Arrays.toString(nameCursorColumns));
Log.i("NUMBER OF RESULTS",Integer.toString(numberCursorResults));
Log.i("ROW VALUES",cursorRowValues);
}
除最后一个 ROW VALUES 外,所有打印输出都有效,它应该打印游标中的每一行结果。这是我运行应用程序时在 logcat 中打印的内容:
02-14 14:52:35.222 5969-5969/com.example.androidlabs I/数据库版本:1
02-14 14:52:35.222 5969-5969/com.example.androidlabs I/列数:3
02-14 14:52:35.222 5969-5969/com.example.androidlabs I/COLUMN NAMES: [_id,TEXT,TYPE]
02-14 14:52:35.222 5969-5969/com.example.androidlabs I/结果数:3
02-14 14:52:35.222 5969-5969/com.example.androidlabs I/ROW VALUES:com.example.androidlabs.Message@55b3428
为什么我会收到 ROW VALUES 的消息?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)