Можно ли добавить скрытые данные к элементам 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");
0
CIRCLE 10 Мар 2015 в 21:44

2 ответа

Лучший ответ

Я не знаю о скрытых значениях, но вы можете добавлять значения, относящиеся к списку, с помощью HashMap. Код приведен ниже. Вы можете сделать что-то подобное

 HashMap<String, Integer> hashMap = new HashMap<String, Integer>();
...
...
menu1.add("SubMenu1");
hashMap.put("Submenu1",23);
..

Вы можете получить идентификатор «SubMenu1», используя -

int id=hashMap.get("Submenu1");

После этого используйте этот идентификатор.

3
Kunal 10 Мар 2015 в 19:01

Вы можете назначить тип объекта любому представлению, используя его метод 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;
0
Daniel Zolnai 10 Мар 2015 в 19:10