Урок 45. Список-дерево ExpandableListView
Добавлено: 26 дек 2011, 03:00
Добро пожаловать на форум сайта
http://forum.startandroid.ru/
Походу вы указываете адаптеру поля, которых нет в layout.Slavko писал(а):попробовал поэкспериментировать с настройками adapter, в частности с android.R.id.text1 (подставил android.R.id.text2, собственные настройки),
получил один результат - пропал вывод на экран массива фирм (самсунг и т.д.).
В main.xml только компонент списка.Slavko писал(а):В тексте ничего не менял.
Я хотел по экспериментировать с шаблонами гугла.
в строке
int groupTo[] = new int[] {android.R.id.text1};
Заменил один шаблон на другой.
int groupTo[] = new int[] {android.R.id.text2};
Подставил в файл компановки main.xml свои настройки.
Результат один, пропадают названия фирм.
Можно хранить где-нить позицию последней открытой группы и закрывать ее программно при открытии новой.Dull писал(а):45 и 46 урок, вопрос - как при открытии списка закрыть предыдущий открытый список. - требуется только 1 открытый список.
Код: Выделить всё
int currGroup = 0;
Код: Выделить всё
if (currGroup != groupPosition) {
elvMain.collapseGroup(currGroup);
currGroup = groupPosition;
}
у меня сначала та же фигня была:) дело в том, что после того как вы применили свой слой тут:damager82 писал(а):Походу вы указываете адаптеру поля, которых нет в layout.Slavko писал(а):попробовал поэкспериментировать с настройками adapter, в частности с android.R.id.text1 (подставил android.R.id.text2, собственные настройки),
получил один результат - пропал вывод на экран массива фирм (самсунг и т.д.).
Укажите здесь вашу строку создания адаптера, плз. Чтобы было видно, какие layout используются. И содержимое массивов groupTo и childTo.
Код: Выделить всё
SimpleCursorTreeAdapter sctAdapter = new MyAdapter(this, cursor,
android.R.layout.simple_expandable_list_item_1, groupFrom,
groupTo, android.R.layout.simple_list_item_1, childFrom,
childTo);
elvMain = (ExpandableListView) findViewById(R.id.elvMain);
elvMain.setAdapter(sctAdapter);
}
Код: Выделить всё
String[] groupFrom = { mDbHelper.spr_grp_go_name };
int[] groupTo = { android.R.id.text1 };
Я думаю, никак. Только копию свою создать.Xroft писал(а):кстати, как отредактировать android.R.layout.simple_list_item_1? эклипс матерится когда я его открываю.
Код: Выделить всё
--start--
Item1
Item2
Item3
subitem1
subitem2
subitem3
Item4
Item5
subitem1
subitem2
subitem3
--end--
оригинал можно взять из <путь установки android>/platrorms/android-<номер версии>/data/res/layout/simple_list_item_1.xmldamager82 писал(а):Я думаю, никак. Только копию свою создать.Xroft писал(а):кстати, как отредактировать android.R.layout.simple_list_item_1? эклипс матерится когда я его открываю.
такое подойдёт? http://android-adda.blogspot.com/2011/0 ... tview.htmlandev писал(а):Появилась необходимость использовать этот тип ListView, но в родительском списке должны присутствовать как разворачивающиеся группы, так и элементы, не имеющие дочерних.
Скажите, это можно реализовать при помощи ExpandableListView и если нет, то при помощи чего?
Код: Выделить всё
--start-- Item1 Item2 Item3 subitem1 subitem2 subitem3 Item4 Item5 subitem1 subitem2 subitem3 --end--
Как переделать цикл для добавления еще одного аттрибута элемента?А вообще вы можете создать для элементов свой layout, например, с тремя TextView. И к каждому элементу списка (Map) добавить еще по два атрибута: цена и цвет.
Код: Выделить всё
// создаем коллекцию элементов для первой группы
childDataItem = new ArrayList<Map<String, String>>();
// заполняем список аттрибутов для каждого элемента
for (String phone, price: phonesHTC, phonesHTCprice) { // такого цикла нет. как правильно?
m = new HashMap<String, String>();
m.put("phoneName", phone); // название телефона
m.put("phonePrice", price); // цена телефона
childDataItem.add(m);
}
// добавляем в коллекцию коллекций
childData.add(childDataItem);
Думаю, что стандартными средствами не сделать такого. Этот адаптер только текст понимает. Из хелпа: "These should all be TextViews".beeline09 писал(а):Допустим у меня есть массив стрингов GroupDescription. Я хочу его заполнить, чтоб он заполнял textview, который на скрине мелким шрифтом и плюс, чтоб к каждому элементу в соответствии с названиями фирм появлялись картинки.
Ну правильно. Я Список фирм телефонов заполнил. Просто в том шаблоне два TextView и один я уже заполнил списком фирм. Теперь мне нужно сделать список описаний для фирм и заполнить их в textview2 скажем так одновременно с textview1. Я надеюсь понятно изъяснился?damager82 писал(а):Думаю, что стандартными средствами не сделать такого. Этот адаптер только текст понимает. Из хелпа: "These should all be TextViews".beeline09 писал(а):Допустим у меня есть массив стрингов GroupDescription. Я хочу его заполнить, чтоб он заполнял textview, который на скрине мелким шрифтом и плюс, чтоб к каждому элементу в соответствии с названиями фирм появлялись картинки.
Только свое что-то дописывать.
Ну может поможешь тогда?та кастомный нужно делать, делов то...