Страница 1 из 5

Урок 46. События ExpandableListView

Добавлено: 29 дек 2011, 03:00
damager82
В этом уроке:

- обрабатываем события дерева-списка

Click here to read this article!

Re: Урок 46. События ExpandableListView

Добавлено: 10 янв 2012, 18:10
sergey.solovey
подскажите пожалуйста, как по нажатию на элемент открывать html файл?
например, по клику на название телефона открывать его описание в формате html...

Re: Урок 46. События ExpandableListView

Добавлено: 10 янв 2012, 20:34
damager82
Да, получал ваше сообщение по почте. Седня-завтра посмотрю и отвечу.
Ну либо кто-нить другой ответит раньше :)

Re: Урок 46. События ExpandableListView

Добавлено: 11 янв 2012, 14:54
damager82
Т.е. вопрос - как открыть html файл из assets и показать его.

Смотрите урок 32 на сайте, там я показываю компонент, который умеет показывать html. Здесь о нем можно почитать.
Только в уроке я гружу URL, а вам нужен файл. Подойдет метод WebView.loadData. Он на вход принимает html-строку.

Вам остается прочесть файл, получить из байтов строку и отдать ее WebView-компоненту.
Прочесть файл в InputStream можно так:

Код: Выделить всё

getAssets().open(file); 
Где file - это строка, имя файла.

Если чего не получится, сообщайте. Напишу код-пример.

Re: Урок 46. События ExpandableListView

Добавлено: 12 фев 2012, 04:55
Slavko
подскажите, возникла проблема.
хотел модернизировать код
перенести все данные массивов в ресурсный файл
сделал в strings.xml
<string-array name="firm">
<item >HTC</item>
<item >Samsung</item>
<item >LG</item>
</string-array>
в классе AdapterHelper изменил
String[] groups = new String[] {"HTC", "Samsung", "LG"};
на
String[] groups = getResources().getStringArray(R.array.firm);
дает ошибку выполнения.
аналогичное решение работало в уроке 43, здесь нет.
в чем ошибка?

Re: Урок 46. События ExpandableListView

Добавлено: 14 фев 2012, 16:56
damager82
Именно эта строка дает ошибку?

Код: Выделить всё

String[] groups = getResources().getStringArray(R.array.firm);
Какой текст ошибки?

Re: Урок 46. События ExpandableListView

Добавлено: 14 фев 2012, 23:15
Slavko
массив пустой
String[] groups = getResources().getStringArray(R.array.firm);
не отработала
ошибку дает первый оператор использования массива groups
for (String group : groups) {

Re: Урок 46. События ExpandableListView

Добавлено: 17 фев 2012, 12:53
damager82
Если данные описаны так: <string-array name="firm">
и внутри куча item, то странно, что не работает.

Может что-то заглючило в Eclipse, попробуйте вместо firm использовать другое слово.

Если не работает, выложите здесь xml-текст, который ваш массив описывает. Посмотрим.

Re: Урок 46. События ExpandableListView

Добавлено: 21 фев 2012, 19:55
SoLVeX

Код: Выделить всё

String[] groups;

//in getAdapter()
groups= ctx.getResources().getStringArray(R.array.commGroup);

Re: Урок 46. События ExpandableListView

Добавлено: 04 янв 2013, 19:56
Natalia
Обьясните пожалуйста назначение underscore, и необходимость его использования
ctx = _ctx;

Re: Урок 46. События ExpandableListView

Добавлено: 04 янв 2013, 21:26
rezak90
Natalia писал(а):Обьясните пожалуйста назначение underscore, и необходимость его использования
ctx = _ctx;
это контекст приложения с помощью которого можем получить например доступ к ресурсам (в данном примере).

Re: Урок 46. События ExpandableListView

Добавлено: 14 янв 2013, 10:34
damager82
Natalia писал(а):Обьясните пожалуйста назначение underscore, и необходимость его использования
ctx = _ctx;
Подчеркивание сделано, чтобы переменные имели разные имена.
Без подчеркивания надо было бы писать this.ctx = ctx. Кто-то именно так и делает и подчеркивания не использует. На вкус и цвет ... )

Re: Урок 46. События ExpandableListView

Добавлено: 14 янв 2013, 20:35
rezak90
из истории... подчёркивание свойственно С, там принята такая конструкция, в более языках java, c# принято this, даже сам Eclipse при генерации кода ставит this (но это можно перенастроить).

Re: Урок 46. События ExpandableListView

Добавлено: 02 май 2013, 22:18
grecd
Пытаюсь сделать особенный child лайаут такой чтобы при нажатии на child элемент
высвечивалась картинка , которая до этого была невидимой
вот такой код

Код: Выделить всё

 adapter = new SimpleExpandableListAdapter(
            this,
            groupData,
            android.R.layout.simple_expandable_list_item_1,
            groupFrom,
            groupTo,
            childData,
            R.layout.childrow,
            childFrom,
            childTo);
            
        elvMain = (ExpandableListView) findViewById(R.id.elvValues);
        elvMain.setAdapter(adapter);
        
        elvMain.setOnChildClickListener(new OnChildClickListener() {
            public boolean onChildClick(ExpandableListView parent, View v,
                int groupPosition,   int childPosition, long id) {
              Log.d("Childclick", "onChildClick groupPosition = " + groupPosition + 
                      " childPosition = " + childPosition + 
                      " id = " + id);
             
               ImageView ok = (ImageView) findViewById(R.id.imageOk);
                ok.setVisibility(View.VISIBLE);

В итоге нажимать нужно раскрыв все группы начинать нажимать с самой последней
иначе картинка видна только в первом чаилде первой группы .

Update - картинка становится видна только в первом чаилде первой группы
Есть какое нибудь решение?

Re: Урок 46. События ExpandableListView

Добавлено: 05 окт 2013, 18:54
Никита
damager82 писал(а):Т.е. вопрос - как открыть html файл из assets и показать его.

Смотрите урок 32 на сайте, там я показываю компонент, который умеет показывать html. Здесь о нем можно почитать.
Только в уроке я гружу URL, а вам нужен файл. Подойдет метод WebView.loadData. Он на вход принимает html-строку.

Вам остается прочесть файл, получить из байтов строку и отдать ее WebView-компоненту.
Прочесть файл в InputStream можно так:

Код: Выделить всё

getAssets().open(file); 
Где file - это строка, имя файла.

Если чего не получится, сообщайте. Напишу код-пример.
Приветствую! Тот же вопрос, нужно по нажатию на элемент открывать html файл. Напишите пожалуйста код-пример.

Re: Урок 46. События ExpandableListView

Добавлено: 05 окт 2013, 21:36
trew
[quote="Никита"][/quote]
Разместил ответ в уроке 32
viewtopic.php?f=3&t=126&p=18592#p18592

Re: Урок 46. События ExpandableListView

Добавлено: 06 окт 2013, 13:28
Никита
trew писал(а):
Никита писал(а):
Разместил ответ в уроке 32
viewtopic.php?f=3&t=126&p=18592#p18592
Спасибо, применил ваш метод в уроке 32, получилось (я нажимал кнопку, и открывался мой html файл). А как мне сделать это в уроке 46? Как-то привязывать к каждому варианту новый html документ?

Re: Урок 46. События ExpandableListView

Добавлено: 06 окт 2013, 13:38
Никита
trew писал(а):
Никита писал(а):
Разместил ответ в уроке 32
viewtopic.php?f=3&t=126&p=18592#p18592
Находил пример (там использовался ListView, и при нажатии на один из элементов списка, открывался текстовый файл) текстовые файлы помещались в папку. а код был реализован таким образом, что эти файлы как-то автоматом привязывались к элементам списка и при нажатии открывались.

Re: Урок 46. События ExpandableListView

Добавлено: 06 окт 2013, 13:45
Никита
trew писал(а):
Никита писал(а):
Разместил ответ в уроке 32
viewtopic.php?f=3&t=126&p=18592#p18592
У нас же структура тут сложнее. Варианты расположены в группах

Re: Урок 46. События ExpandableListView

Добавлено: 10 окт 2013, 16:03
Mamapapa
Хотел бы узнать можно ли добавить картинку в Child?Если да то каким методом?