Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 28.06.2017
Сообщений: 49

Как в ListView для каждого элемента сделать подробную информацию

11.11.2017, 23:01. Показов 1038. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Как мне лучше реализовать такую идею, в общем есть listview в нем список с названиями станций. Как можно сделать, чтобы по клику элемента списка он изменял вид более расширенный с подробной информацией о станции? Я находил инфу о подмене фрагментов, но походу в списке так нельзя делать ... Заранее спасибо.

Вот нарисовал схематично, как должно работать
Кликните здесь для просмотра всего текста
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.11.2017, 23:01
Ответы с готовыми решениями:

Отобразить в ListView подробную информацию об объекте, выбранном в другом ListView
Имеется класс Диск и класс Трек. Класс Диск содержит лист треков. На форме имеется 2 listView'а, в один listView пользователь добавляет...

Как получить подробную информацию о сетевом соединении?
Всем здравия. Собственно вопрос: Как получить подробную информацию об сетевом соединении? А именно: Адаптер, тип подключения, скорость и...

Как сделать контекстное меню для каждого элемента QListWidget
Не как не могу понять как сделать контекстное меню для каждого элемента QListWidget, помогите пожалуйста Qt начал изучать совсем недавно

8
20 / 14 / 2
Регистрация: 10.06.2016
Сообщений: 144
12.11.2017, 12:19
ExpandableListView вам в помощь
0
1 / 1 / 0
Регистрация: 28.06.2017
Сообщений: 49
12.11.2017, 14:25  [ТС]
Да, спасибо)
Еще вчера решил использовать все-таки его.
0
1 / 1 / 0
Регистрация: 28.06.2017
Сообщений: 49
15.11.2017, 21:27  [ТС]
Я использую FloatingGroupExpandableListView - кастомный ExpandableListView. В example нашел простое описание групп и их дочерних элементов:
Java
1
2
3
4
5
6
7
8
9
10
11
 private final String[] mGroups = {
            "A",
            "B",
            "C"
    };
 
    private final String[][] mChilds = {
            {"1.3","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7"},
            {"2.3","2.3.1","2.3.2","2.3.3","2.3.4","2.3.5","2.3.6","2.3.7"},
            {"3.0","3.1","3.2","3.2.1","3.2.2","3.2.3","3.2.4","3.2.5","3.2.6"}
    };
mChilds двумерный массив, 1-й индекс это номер группы, а второй его доч. элементы. Как лучше реализовать такую связь, когда группа и его доч. элементы писаных более сложной структурой (моделями)? С помощью List не получится ведь, если его использовать...
0
31 / 29 / 8
Регистрация: 07.01.2017
Сообщений: 205
16.11.2017, 12:20
Сделать RecyclerView , в классе прописать количество элементов, например Name, Phone, Adress, В основной вьюхе RV показывать только Name и Phone по клику делать Intent Put Extra getAdapterPosition и передавать во 2 активити/фрагмент весь класс и уже там его отображать в раскрытом виде.
Имхо может и мой метод костыль, но листВью явно не вариант, и с такими массивами ты ужаснешься сам потом.
0
90 / 89 / 23
Регистрация: 08.07.2014
Сообщений: 548
16.11.2017, 12:36
Цитата Сообщение от Mail-up Посмотреть сообщение
Сделать RecyclerView , в классе прописать количество элементов, например Name, Phone, Adress, В основной вьюхе RV показывать только Name и Phone по клику делать Intent Put Extra getAdapterPosition и передавать во 2 активити/фрагмент весь класс и уже там его отображать в раскрытом виде.
Имхо может и мой метод костыль, но листВью явно не вариант, и с такими массивами ты ужаснешься сам потом.
Уж больно все заморочено. RecyclerView + CardView, в CardView засовываем доп. layout с visibility:gone и при клике на CardView либо показывать его, либо скрывать. Самый простой и тупой вариант.
0
1 / 1 / 0
Регистрация: 28.06.2017
Сообщений: 49
17.11.2017, 16:48  [ТС]
А если конкретно для ExpandableListView, как в адаптере лучше и разумнее сделать такую связь между родительскими и дочерними элементыми? Ведь массивы - как-то сомнительная вещь...

вот код адаптера:
Кликните здесь для просмотра всего текста
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
public class SampleAdapter extends BaseExpandableListAdapter {
 
    private final Context mContext;
    private final LayoutInflater mLayoutInflater;
 
    private final String[] mGroups = {
            "Cupcake",
            "Donut",
            "Eclair",
            "Froyo",
            "Gingerbread",
            "Honeycomb",
            "Ice Cream Sandwich",
            "Jelly Bean",
            "KitKat"
    };
 
    private final int[] mGroupDrawables = {
            R.drawable.cupcake,
            R.drawable.donut,
            R.drawable.eclair,
            R.drawable.froyo,
            R.drawable.gingerbread,
            R.drawable.honeycomb,
            R.drawable.ice_cream_sandwich,
            R.drawable.jelly_bean,
            R.drawable.kitkat
    };
 
    private final String[][] mChilds = {
            {"1.5"},
            {"1.6"},
            {"2.0","2.0.1","2.1"},
            {"2.2","2.2.1","2.2.2","2.2.3"},
            {"2.3","2.3.1","2.3.2","2.3.3","2.3.4","2.3.5","2.3.6","2.3.7"},
            {"3.0","3.1","3.2","3.2.1","3.2.2","3.2.3","3.2.4","3.2.5","3.2.6"},
            {"4.0", "4.0.1", "4.0.2", "4.0.3", "4.0.4"},
            {"4.1", "4.1.1", "4.1.2", "4.2", "4.2.1", "4.2.2", "4.3", "4.3.1"},
            {"4.4"}
    };
 
    public SampleAdapter(Context context) {
        mContext = context;
        mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    
    @Override
    public int getGroupCount() {
        return mGroups.length;
    }
 
    @Override
    public Object getGroup(int groupPosition) {
        return mGroups[groupPosition];
    }
 
    @Override
    public long getGroupId(int groupPosition) {
        return groupPosition;
    }
 
    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        if(convertView == null) {
            convertView = mLayoutInflater.inflate(R.layout.sample_activity_list_group_item, parent, false);
        }
 
        final ImageView image = (ImageView) convertView.findViewById(R.id.sample_activity_list_group_item_image);
        image.setImageResource(mGroupDrawables[groupPosition]);
 
        final TextView text = (TextView) convertView.findViewById(R.id.sample_activity_list_group_item_text);
        text.setText(mGroups[groupPosition]);
        
        final ImageView expandedImage = (ImageView) convertView.findViewById(R.id.sample_activity_list_group_expanded_image);
        final int resId = isExpanded ? R.drawable.minus : R.drawable.plus;
        expandedImage.setImageResource(resId);
 
        return convertView;
    }
 
    @Override
    public int getChildrenCount(int groupPosition) {
        return mChilds[groupPosition].length;
    }
 
    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return mChilds[groupPosition][childPosition];
    }
 
    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }
 
    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        if(convertView == null) {
            convertView = mLayoutInflater.inflate(R.layout.sample_activity_list_child_item, parent, false);
        }
        
        final TextView text = (TextView) convertView.findViewById(R.id.sample_activity_list_child_item_text);
        text.setText(mChilds[groupPosition][childPosition]);
        
        return convertView;
    }
 
    @Override
    public boolean hasStableIds() {
        return false;
    }
 
    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return false;
    }
 
}
0
31 / 29 / 8
Регистрация: 07.01.2017
Сообщений: 205
18.11.2017, 07:59
тут что то типа того
1
1 / 1 / 0
Регистрация: 28.06.2017
Сообщений: 49
18.11.2017, 13:14  [ТС]
Спасибо), странно, что не нашел сам эту статью
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.11.2017, 13:14
Помогаю со студенческими работами здесь

Как сделать одно событие для каждого элемента массива?
Здравствуйте. Есть массив с контролами. А как сделать чтобы при наведении мыши на контрол, который в массиве с ним что-то происходило? Для...

Как сделать шаблон Background'a для каждого элемента в ComboBox
Доброго времени суток! У меня есть код: for (int i = 0; i < macroses.Count; i++) { DoStuffBox.Items.Add(macroses); ...

Как по пути к файлу на сервере узнать подробную информацию о нём?
Если в контекстном меню файла выбрать "свойства", а потом вкладку "подробно", там специфические для типа файла свойства. Как получить эти...

Как создать подробную обновляемую информацию о документе в полях экспресс блоков?
Подскажите пожалуйста, как можно добавить в сам документ с помощью экспресс блоков разные данные о документе. Нашел как добавлять...

Как отследить событие нажатия каждого элемента ListView по отдельности
Здравствуйте возникло несколько вопросов по ListView 1. Как отследить событие нажатия каждого элемента listview по отдельностью? 2. Как...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru