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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Valentyn474
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 10
#1

Идентификация элементов в ExpandableListView - Программирование Android

21.11.2016, 22:23. Просмотров 257. Ответов 7
Метки нет (Все метки)

У меня возникла проблема с onClick в ExpandableListView. Сначала я хотел написать с помощью onChildClick но он начинает отчет в каждой группе заново(case 1, 2, 3). По названию мне тоже не подходит, поскольку приложение на 4 языках. Как добавить идентификатор к КАЖДОМУ элементу? Вот пример как у меня устроены Child: List string = new ArrayList(); string.add(getString(R.string.acoustic));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2016, 22:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Идентификация элементов в ExpandableListView (Программирование Android):

ExpandableListView - Программирование Android
Доброго времени суток! Пытаюсь сделать подсветку элементов ExpandableListView по аналогии с ListView <ExpandableListView ...

ExpandableListView - Программирование Android
Подскажите как быть, есть список груп(допустим их всего 3) и есть список дочерних элементов у каждой группы свой. допустим мы развернули...

ExpandableListView не скролит - Программирование Android
Есть разметка, которая содержит последним элементом ExpandableListView (кастомизирую его). <?xml version="1.0"...

OnClick ExpandableListView - Программирование Android
Пример для ItemList, который нашел в интернете. listview.setOnItemClickListener(new OnItemClickListener(){ @Override ...

Прослушать ExpandableListView - Программирование Android
Здраствуйте, у меня есть код прослушки, он работает! но мне нужно вытянуть текст который находитса в етом chold_view код: ...

Свёрнутый список в ExpandableListView - Программирование Android
Как сделать, что бы при запуске активности с ExpandableListView, список был свёрнут, а то у меня много пунктов и долго приходится мотать...

7
ExFau$t
369 / 355 / 75
Регистрация: 08.05.2012
Сообщений: 1,796
21.11.2016, 22:56 #2
Ну, например, дать ему tag или id.
0
Valentyn474
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 10
21.11.2016, 23:21  [ТС] #3
А не покажете пример как присвоить id каждому элементу ExpandableListView?
Я уже много перерыл - не нашел.

Добавлено через 1 минуту
ExFau$t, А не покажете пример как присвоить id каждому элементу ExpandableListView?
Я уже много перерыл - не нашел.
0
ExFau$t
369 / 355 / 75
Регистрация: 08.05.2012
Сообщений: 1,796
21.11.2016, 23:26 #4
Например:http://developer.alexanderklimov.ru/...lelistview.php
0
Valentyn474
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 10
21.11.2016, 23:34  [ТС] #5
ExFau$t, я сделал по другому.
Я прописывал каждый элемент указывая ссылку на название в string.
Как я теперь могу указать на этот string?
В case?
0
ExFau$t
369 / 355 / 75
Регистрация: 08.05.2012
Сообщений: 1,796
21.11.2016, 23:37 #6
Код приложи, посмотрим.
0
Valentyn474
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 10
22.11.2016, 00:05  [ТС] #7
ExFau$t,
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
import android.app.*;
import android.content.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.widget.ExpandableListView.*;
import java.util.*;
import android.util.*;
import android.nfc.*;
 
public class Musicalins extends Activity {
    
    ExpandableListAdapter listAdapter;
    ExpandableListView expListView;
    List<String> MusList;
    HashMap<String, List<String>> MusListChild;
    Map<String, List<String>> Musinstrument;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.musicalins);
 
        
        expListView = (ExpandableListView) findViewById(R.id.lvExp);
 
        
        createMusList();
 
        listAdapter = new ExpandableListAdapter(this, MusList, MusListChild);
        
        expListView.setAdapter(listAdapter);
    
        
    expListView.setOnChildClickListener(new OnChildClickListener() {
 
    @Override
    public boolean onChildClick(ExpandableListView parent, View v,
                                int groupPosition, int childPosition, long id) {
 
        final String selected = (String) listAdapter.getChild(
            groupPosition, childPosition);
 
        Intent intent;
 
        switch (selected) {
            default:
            case "Acoustic guitar" :
                intent = new Intent(Musicalins.this, C.class);
                break;
            case "AutoHarp" :
                intent = new Intent(Musicalins.this, Cp.class);
                break;
            case "Baglama" :
                intent = new Intent(Musicalins.this, Cp7.class);
                break;
            case "Balalaika" :
                intent = new Intent(Musicalins.this, C_C.class);
                break;
        
    }
                startActivity(intent);
                return true;
        }});}
    
    private void createMusList() {
        MusList = new ArrayList<String>();
        MusListChild = new HashMap<String, List<String>>();
        MusList.add(getString(R.string.stringg)); 
        MusList.add(getString(R.string.windgg));
        MusList.add(getString(R.string.percussiongg));
        MusList.add(getString(R.string.keygg));
        MusList.add(getString(R.string.electrogg));
        
        List<String> string = new ArrayList<String>();
        string.add(getString(R.string.acoustic)); 
        string.add(getString(R.string.aharp));
        string.add(getString(R.string.baglama));
        string.add(getString(R.string.balalaika));
        string.add(getString(R.string.banjo));
        string.add(getString(R.string.bassg));
        string.add(getString(R.string.cello));
        string.add(getString(R.string.charango));
        string.add(getString(R.string.classicalg));
        string.add(getString(R.string.dombra));
        string.add(getString(R.string.domra));
        string.add(getString(R.string.doubleb));
        string.add(getString(R.string.gusli));
        string.add(getString(R.string.harp));
        string.add(getString(R.string.jetigen));
        string.add(getString(R.string.koto));
        string.add(getString(R.string.lute));
        string.add(getString(R.string.mandolin));
        string.add(getString(R.string.pandora));
        string.add(getString(R.string.sitar));
        string.add(getString(R.string.tar));
        string.add(getString(R.string.ukulele));
        string.add(getString(R.string.viola));
        string.add(getString(R.string.violin));
        string.add(getString(R.string.zither));
 
        List<String> wind = new ArrayList<String>();
        wind.add(getString(R.string.bassc));
        wind.add(getString(R.string.bassoon));
        wind.add(getString(R.string.clarinet));
        wind.add(getString(R.string.flute));
        wind.add(getString(R.string.frenchhorn));
        wind.add(getString(R.string.helicon));
        wind.add(getString(R.string.oboe));
        wind.add(getString(R.string.piccolo));
        wind.add(getString(R.string.sousaphone));
        wind.add(getString(R.string.saxophone));
        wind.add(getString(R.string.trombone));
        wind.add(getString(R.string.trumpet));
 
        List<String> percussion = new ArrayList<String>();
        percussion.add(getString(R.string.castanets));
        percussion.add(getString(R.string.cymbal));
        percussion.add(getString(R.string.drum));
        percussion.add(getString(R.string.glockenspiel));
        percussion.add(getString(R.string.gong));
        percussion.add(getString(R.string.maraca));
        percussion.add(getString(R.string.tambourine));
        percussion.add(getString(R.string.timpani));
        percussion.add(getString(R.string.triangle));
        
        List<String> keyboard = new ArrayList<String>();
        keyboard.add(getString(R.string.accordion));
        keyboard.add(getString(R.string.bayan));
        keyboard.add(getString(R.string.clavichord));
        keyboard.add(getString(R.string.garmon));
        keyboard.add(getString(R.string.grandpiano));
        keyboard.add(getString(R.string.harpsichord));
        keyboard.add(getString(R.string.piano));
        keyboard.add(getString(R.string.pipeorgan));
        keyboard.add(getString(R.string.pumporgan));
        
        List<String> electro = new ArrayList<String>();
        electro.add(getString(R.string.drummachine));
        electro.add(getString(R.string.electrodrum));
        electro.add(getString(R.string.electrog));
        electro.add(getString(R.string.laserharp));
        electro.add(getString(R.string.synthesizer));
        electro.add(getString(R.string.vocoder));
 
        MusListChild.put(MusList.get(0), string);
        MusListChild.put(MusList.get(1), wind);
        MusListChild.put(MusList.get(2), percussion);
        MusListChild.put(MusList.get(3), keyboard);
        MusListChild.put(MusList.get(4), electro);
    }
}
 Комментарий модератора 
Используйте теги для выделения кода
0
ExFau$t
369 / 355 / 75
Регистрация: 08.05.2012
Сообщений: 1,796
22.11.2016, 10:03 #8
1) код оформляется тегами, так его смотреть вообще убого.
2) ты что-нибудь слышал про массивы строк в ресурсах? Если бы у тебя 150 строк было, ты бы их также по одной переписывал?
3) зачем тебе идентифицировать каждый элемент, если у тебя есть листы и groupPosition, childPosition. Делаешь case на родительский лист, и потом достаёшь из выбранного листа get(childPosition).
0
22.11.2016, 10:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2016, 10:03
Привет! Вот еще темы с ответами:

ExpandableListView внутри ListFragment - Программирование Android
Здравствуйте, мне внутри listFragment нужно сделать ExpandableListView. Как делать обычный listView я разобрался, с этим немогу...

Обновление состояния ExpandableListView - Программирование Android
Есть кнопка при нажатии на которою в БД добавляется запись. Все записи с БД отображаются в ExpandableListView. Обновляю, с помощью...

ExpandableListView настройка item - Программирование Android
Добрый день! Народ помогите пожалуйста, я сделал свой layout. Как мне там расположить вот этот код чтобы была imageView2...

Expandablelistview совместно с listview - Программирование Android
Извиняюсь, если спрашиваю ерунду, но никак не могу найти решение задачи одновременного использования listview и expandablelistview. Т.е....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.