Форум программистов, компьютерный форум CyberForum.ru

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

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

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

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

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

Android Прослушать ExpandableListView
Android контекстное меню на ExpandableListView
Android ExpandableListView
Android ExpandableListView на разных API
Android Expandablelistview совместно с listview
Android ExpandableListView не скролит
Свёрнутый список в ExpandableListView Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ExFau$t
223 / 206 / 41
Регистрация: 08.05.2012
Сообщений: 1,148
21.11.2016, 22:56     Идентификация элементов в ExpandableListView #2
Ну, например, дать ему tag или id.
Valentyn474
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 10
21.11.2016, 23:21  [ТС]     Идентификация элементов в ExpandableListView #3
А не покажете пример как присвоить id каждому элементу ExpandableListView?
Я уже много перерыл - не нашел.

Добавлено через 1 минуту
ExFau$t, А не покажете пример как присвоить id каждому элементу ExpandableListView?
Я уже много перерыл - не нашел.
ExFau$t
223 / 206 / 41
Регистрация: 08.05.2012
Сообщений: 1,148
21.11.2016, 23:26     Идентификация элементов в ExpandableListView #4
Например:http://developer.alexanderklimov.ru/...lelistview.php
Valentyn474
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 10
21.11.2016, 23:34  [ТС]     Идентификация элементов в ExpandableListView #5
ExFau$t, я сделал по другому.
Я прописывал каждый элемент указывая ссылку на название в string.
Как я теперь могу указать на этот string?
В case?
ExFau$t
223 / 206 / 41
Регистрация: 08.05.2012
Сообщений: 1,148
21.11.2016, 23:37     Идентификация элементов в ExpandableListView #6
Код приложи, посмотрим.
Valentyn474
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 10
22.11.2016, 00:05  [ТС]     Идентификация элементов в ExpandableListView #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);
    }
}
 Комментарий модератора 
Используйте теги для выделения кода
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2016, 10:03     Идентификация элементов в ExpandableListView
Еще ссылки по теме:

Android ExpandableListView - cannot inflate class
ExpandableListView Android
Нажатие на элементы ExpandableListView Android
Android Обновление состояния ExpandableListView
OnClick ExpandableListView Android

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

Или воспользуйтесь поиском по форуму:
ExFau$t
223 / 206 / 41
Регистрация: 08.05.2012
Сообщений: 1,148
22.11.2016, 10:03     Идентификация элементов в ExpandableListView #8
1) код оформляется тегами, так его смотреть вообще убого.
2) ты что-нибудь слышал про массивы строк в ресурсах? Если бы у тебя 150 строк было, ты бы их также по одной переписывал?
3) зачем тебе идентифицировать каждый элемент, если у тебя есть листы и groupPosition, childPosition. Делаешь case на родительский лист, и потом достаёшь из выбранного листа get(childPosition).
Yandex
Объявления
22.11.2016, 10:03     Идентификация элементов в ExpandableListView
Ответ Создать тему
Опции темы

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