将游标信息打印到 logcat

问题描述

我想将以下信息打印到 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 (将#修改为@)