Можно ли добавить скрытые данные к элементам ExpandableListView?
Например, в HTML я бы сделал что-то вроде создания нового атрибута, а затем получил бы его из выбранного элемента с помощью JavaScript.
<select>
<option hidden-data="298">Submenu 1</option>
</select>
На данный момент я могу получить текст только от ребенка, и мне нужно передать идентификатор для каждого ребенка, чтобы искать в базе данных нужную информацию.
Что-то вроде:
listDataHeader.add("Menu 1");
List<String> menu1 = new ArrayList<String>();
menu1.add("Submenu 1").addExtraData("ID = 23");
menu1.add("Submenu 2").addExtraData("ID = 24");
2 ответа
Я не знаю о скрытых значениях, но вы можете добавлять значения, относящиеся к списку, с помощью HashMap. Код приведен ниже. Вы можете сделать что-то подобное
HashMap<String, Integer> hashMap = new HashMap<String, Integer>();
...
...
menu1.add("SubMenu1");
hashMap.put("Submenu1",23);
..
Вы можете получить идентификатор «SubMenu1», используя -
int id=hashMap.get("Submenu1");
После этого используйте этот идентификатор.
Вы можете назначить тип объекта любому представлению, используя его метод setTag(Object object)
. Позже вы можете получить этот объект, используя метод View getTag()
и приведя его к желаемому типу.
Если вы не хотите хранить данные в представлениях, поскольку они связаны не с самими представлениями, а в большей степени с данными, вы можете использовать класс android.util.Pair
(или android.support.v4.util.Pair
), например это:
List<Pair<String,String>> menu1 = new ArrayList<Pair<String,String>>();
menu1.add(new Pair<String,String>("Submenu 1","ID = 23"));
menu1.add(new Pair<String,String>("Submenu 2","ID = 24"));
// Later you can get the data this way:
Pair<String, String> example = menu1.get(0);
String firstPart = example.first;
String extraInfo = example.second;
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.