Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Valentyn474
0 / 0 / 0
Регистрация: 21.11.2016
Сообщений: 10
#1

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

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

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

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

OnClick ExpandableListView
Пример для ItemList, который нашел в интернете. ...

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

Не раскрывается ExpandableListView
Здравствуйте помогите найти ошибку в разметке, ExpandableListView не хочет...

ExpandableListView не скролит
Есть разметка, которая содержит последним элементом ExpandableListView...

7
ExFau$t
516 / 471 / 101
Регистрация: 08.05.2012
Сообщений: 2,371
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
516 / 471 / 101
Регистрация: 08.05.2012
Сообщений: 2,371
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
516 / 471 / 101
Регистрация: 08.05.2012
Сообщений: 2,371
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
516 / 471 / 101
Регистрация: 08.05.2012
Сообщений: 2,371
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 настройка item
Добрый день! Народ помогите пожалуйста, я сделал свой layout. Как мне там...

Группировка по типу в expandablelistview
Есть класс списка объектов class Objects{ String name; int groupId; } ...

ExpandableListView удаление группы
Добрый день, подскажите, как удалить группу в ExpandableListView.

Нажатие на элементы ExpandableListView
Добрый день. У меня есть ExpandableListView в нём сделан...


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

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

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