将数据分组到不同的类别

时间:2014-11-15 21:31:36

标签: android sqlite grouping

我遵循了本教程(http://www.vogella.com/tutorials/AndroidListView/article.html#expandablelistview) 对于可扩展列表视图,我在其中输入不同的商店名称,按其所在城镇的部分进行分类:
screenshot

但显然没有必要多次拥有同一组(例如Neukölln的情况)。

这是我尝试做的事情:

SparseArray<Groups> groups = new SparseArray<Groups>();
DatabaseHandler db = new DatabaseHandler(this) ;
List<Shop> shops = db.getAllShops();

    Groups group = null ;
    String str = "null" ;

    int i = 0 ;
    for (Shop shop : shops){
        // if current shop's district differs from district of the shop of the last iteration
        if ( shop.getDistrict() != str ) {
            // making sure that empty group is not appended into groups in the first iteration
            if (group != null) {
                groups.append(i, group);
                i++;
            }
            // saving the district of the current shop
            str = shop.getDistrict();
            // creating a new group named after the current district
            group = new Groups(str);
        }
        // adding shop name to the current district
        group.subitems.add(shop.getName()) ;
    }
    // after last iteration the last group needs to be appended to the groups
    groups.append(i, group);

我希望你能理解我的代码的基本思想。我确定它必须解决,因为我在纸上经历了它,理论上它是有效的。 我的第一个想法是那些if语句是负责任的,但我不知道如何修复它。

1 个答案:

答案 0 :(得分:1)

您的shop.getDistrict() != str语句将始终返回true,而是使用String.equalsHow do I compare strings in Java?