Форум программистов, компьютерный форум, киберфорум
Наши страницы

Обработчик нажатия в ExpandableListView - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android С чего начать разработку приложений http://www.cyberforum.ru/android-dev/thread1238499.html
Раньше не разрабатывал под Android. Хочу сделать не сложное переложения но не знаю с чего начать и что почитать конкретно то что мне надо (не представляю как это правильно прогуглить). Суть:...
Программирование Android Очень тормозит эмулятор в эклипсе Привет Друзья! Начал изучать Андроид, пока на стадии настройки среды выполнения. Проблема: -скачал эклипс специально для разработки под андроид со встроенным эмулятором, выделил памяти 1 Гб,... http://www.cyberforum.ru/android-dev/thread1238492.html
Программирование Android Чтение русских символов. Отрицательные значения у символов
Добрый вечер. Считую файл .txt. Но русские буквы получают отрицательное значение. И в итоге при попытке перевести в String не распознаются. Например, "с" = 15. Подскажите как исправить? private...
Программирование Android Android и ActionScript
Здравствуйте. Есть определенные задачи для которых подходит флеш. У меня возник вопрос, а код пишется на обычном As3. Или есть специализированные классы для мобильной разработки.
Программирование Android Посоветуйте фреймворк http://www.cyberforum.ru/android-dev/thread1238428.html
Бодрого времени суток, господа! Неожиданно поставилась задача написать приложение для Android и iOS. Приложение несложное (клиент для сайта, чтобы отображал новости с него, и информацию выводил с...
Программирование Android Sendto failed: ECONNRESET (Connection reset by peer) Обычно привык решать проблемы в коде гуглением, но что то на этот вопрос вообще не нашел ответа... В общем я пытаюсь отправить видео на сервер с помощью AsyncTask'a, но у меня сыпется на... подробнее

Показать сообщение отдельно
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 101

Обработчик нажатия в ExpandableListView - Программирование Android

05.08.2014, 21:06. Просмотров 1378. Ответов 3
Метки (Все метки)

Есть ExpandableListView сделанный по примеру...

Т.е. есть разворачиваемый список второго уровня, как повесить обработчик нажатия для каждого элемента списка "child", чтобы например запустить активность с описанием? Например нажимаю на "Декабрь" и появляется описание...

Вот код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
public class TestActivity extends Activity {
 
    String[] groups = new String[] { "Зима", "Весна", "Лето", "Осень" };
 
    String[] winterMonths = new String[] { "Декабрь", "Январь", "Февраль" };
    String[] springMonths = new String[] { "Март", "Апрель", "Май" };
    String[] summerMonths = new String[] { "Июнь", "Июль", "Август" };
    String[] autumnMonths = new String[] { "Сентябрь", "Октябрь", "Ноябрь" };
 
    // коллекция для групп
    ArrayList<Map<String, String>> groupData;
 
    // коллекция для элементов одной группы
    ArrayList<Map<String, String>> childDataItem;
 
    // общая коллекция для коллекций элементов
    ArrayList<ArrayList<Map<String, String>>> childData;
    // в итоге получится childData = ArrayList<childDataItem>
 
    // список атрибутов группы или элемента
    Map<String, String> m;
 
    ExpandableListView expListView;
 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
 
        // заполняем коллекцию групп из массива с названиями групп
        groupData = new ArrayList<Map<String, String>>();
        for (String group : groups) {
            // заполняем список атрибутов для каждой группы
            m = new HashMap<String, String>();
            m.put("groupName", group); // время года
            groupData.add(m);
        }
 
        // список атрибутов групп для чтения
        String groupFrom[] = new String[] { "groupName" };
        // список ID view-элементов, в которые будет помещены аттрибуты групп
        int groupTo[] = new int[] { android.R.id.text1 };
 
        // создаем коллекцию для коллекций элементов
        childData = new ArrayList<ArrayList<Map<String, String>>>();
 
        // создаем коллекцию элементов для первой группы
        childDataItem = new ArrayList<Map<String, String>>();
        // заполняем список аттрибутов для каждого элемента
        for (String month : winterMonths) {
            m = new HashMap<String, String>();
            m.put("monthName", month); // название месяца
            childDataItem.add(m);
        }
        // добавляем в коллекцию коллекций
        childData.add(childDataItem);
 
        // создаем коллекцию элементов для второй группы
        childDataItem = new ArrayList<Map<String, String>>();
        for (String month : springMonths) {
            m = new HashMap<String, String>();
            m.put("monthName", month);
            childDataItem.add(m);
        }
        childData.add(childDataItem);
 
        // создаем коллекцию элементов для третьей группы
        childDataItem = new ArrayList<Map<String, String>>();
        for (String month : summerMonths) {
            m = new HashMap<String, String>();
            m.put("monthName", month);
            childDataItem.add(m);
        }
        childData.add(childDataItem);
 
        // создаем коллекцию элементов для четвертой группы
        childDataItem = new ArrayList<Map<String, String>>();
        for (String month : autumnMonths) {
            m = new HashMap<String, String>();
            m.put("monthName", month);
            childDataItem.add(m);
        }
        childData.add(childDataItem);
 
        // список аттрибутов элементов для чтения
        String childFrom[] = new String[] { "monthName" };
        // список ID view-элементов, в которые будет помещены аттрибуты
        // элементов
        int childTo[] = new int[] { android.R.id.text1 };
 
        SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter(
                this, groupData,
                android.R.layout.simple_expandable_list_item_1, groupFrom,
                groupTo, childData, android.R.layout.simple_list_item_1,
                childFrom, childTo);
 
        expListView = (ExpandableListView) findViewById(R.id.expListView);
        expListView.setAdapter(adapter);
    }
}
Добавлено через 8 часов 10 минут
Вообщем получилось сделать самому...

Нажатие на элемент:
Java
1
2
3
4
5
6
expListView.setOnChildClickListener(new OnChildClickListener() {
              public boolean onChildClick(ExpandableListView parent, View v,
                  int groupPosition,   int childPosition, long id) {
                Log.d(LOG_TAG, "onChildClick groupPosition = " + groupPosition + 
                        " childPosition = " + childPosition + 
                        " id = " + id);
И условие:
Java
1
2
3
4
5
if (groupPosition == 0 & childPosition == 0) {
                    Intent i = new Intent(getActivity().getApplication(), Anabas.class); 
                    startActivity(i); 
                    
                };
Помог вот этот урок...

У меня сложнее... у меня был фрагмент в фрагменте, а по-простому так:
Java
1
2
3
4
5
if (groupPosition == 0 & childPosition == 0) {
                    Intent i = new Intent(this, Anabas.class); 
                    startActivity(i); 
                    
                };
Добавлено через 1 минуту
Короче пообщался на форуме сам с собой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru