【问题标题】:populate listview row from more than one database row从多个数据库行填充列表视图行
【发布时间】:2011-09-14 09:30:56
【问题描述】:

我有一个列表视图,我想用对多个数据库表行进行的多次计算填充一行,绞盘将行 ID 作为列(组)。

因此,例如,我的一个数据库表有三行,所有 winch 的一个列都有一个唯一的行 ID,而另一列(组)对于所有行都具有相同的值,从而可以将它们分组在一起。

我想要做的是将光标传递到列组中具有相同值的每一行上,并在每一行上做一些事情,如加、减、减等,然后将每一行的结果添加到然后我可以附加到列表视图的值。

我该怎么做呢?

【问题讨论】:

    标签: android sqlite listview


    【解决方案1】:

    您可以将结果放在Array 中,然后对每个项目执行您想要的操作。然后使用arrayAdapter 将项目放入其中。

    public String[][] getResultSetAsArray(Cursor cursor) {
    
    int numberOfColumns = cursor.getColumnCount();
    int numberOfRows = cursor.getCount();
    
    String [][] resultSetAsArray = new String[numberOfColumns][numberOfRows];
    
    for (int currentColumn = 0; currentColumn < numberOfColumns; currentColumn++)
    {
        cursor.moveToFirst();
        for (int currentRow = 0; currentRow < numberOfRows; currentRow++)
        {
        resultSetAsArray[currentColumn][currentRow] = cursor.getString(currentColumn);
        cursor.moveToNext();
        }
    }
    return resultSetAsArray;
    }
    

    此方法将光标的所有结果返回到二维数组中。如果您只有一列,您只需使用该方法并在其后面加上[0] 即可将其放入一个数组中。

    例子:

    String table = tablename;
    String[] columns = {column1, column2};
    String orderBy = columnNameToOrder;
    
    Cursor cursor = db.query(table, columns, null, null, null, null, orderBy); 
    String[] column1Values = dbRetrieval.getResultSetAsArray(tabLabelCursor)[0];
    String[] column2Values = dbRetrieval.getResultSetAsArray(tabLabelCursor)[1];
    String[][] values = dbRetrieval.getResultSetAsArray(tabLabelCursor); // all the database values in a two-dimensional array.
    

    【讨论】:

    • 那么我如何得到每一行的结果?以及如何从中创建一个数组??
    • 看看我的编辑 :) 我认为 List 会是一个更简洁的解决方案,但也许你可以从这里开始。
    • 谢谢,这看起来像我想要的,但我不确定我在哪里为每一行进行计算?因此,例如,数据库表的第一行将 3 列放在一起,然后找到结果,然后第 2 行也会发生同样的情况。然后我希望将两者的结果添加并放入列表视图中。
    • 可以像上面二维数组中的values一样获取一个数组中的所有列。在另一个数组中,您可以将操作的结果放在该数组的元素上,然后使用 arrayadapter 将其放在那里。
    • 那你应该修改getResultAsArray方法。完全有可能
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多