Я после этого учебника (http://www.vogella.com/tutorials/AndroidListView/article.html#expandablelistview) для расширяемого списка, в котором я ввожу разные названия магазина, классифицированных по той части города, они расположены:
Группировка данных в различные категории
Но есть очевидно, нет необходимости иметь одну и ту же группу несколько раз (что, например, относится к 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-утверждения несут ответственность, но я не знаю, как это исправить.
Показать 'getAllShops'. –
Я в основном использовал этот учебник по androidhive: http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/ В этом учебном пособии метод называется getAllContacts() Я просто немного изменил его – VollNoob