2014-11-15 4 views
0

Я после этого учебника (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-утверждения несут ответственность, но я не знаю, как это исправить.

+0

Показать 'getAllShops'. –

+0

Я в основном использовал этот учебник по androidhive: http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/ В этом учебном пособии метод называется getAllContacts() Я просто немного изменил его – VollNoob

ответ

1

Ваш оператор shop.getDistrict() != str всегда будет возвращать true, вместо этого используйте String.equals. How do I compare strings in Java?

+0

Хорошо, это звучит многообещающе, я попробую это позже. Заранее большое спасибо :) – VollNoob

Смежные вопросы