2015-03-10 2 views
0

Можно ли добавлять скрытые данные к элементам ExpandableListView?
Например, в HTML я бы сделал что-то вроде создания нового атрибута и, вместо того, чтобы получить его из выбранного элемента с помощью JavaScript.Добавить скрытые данные в дочерних элементах ExpandableListView

<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"); 

ответ

3

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

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

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

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

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

0

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