在ExpandableListView子项中添加隐藏数据

时间:2015-03-10 18:44:09

标签: android

是否可以将隐藏数据添加到ExpandableListView的项目中? 例如,在HTML中我会做一些事情,比如创建一个新属性,然后使用JavaScript从所选项目中获取它。

<select>
      <option hidden-data="298">Submenu 1</option>
</select>

现在,我只能从孩子那里得到文本,我需要为每个孩子传递一个ID,以便在数据库中搜索正确的信息。
类似的东西:

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 个答案:

答案 0 :(得分:3)

我不知道隐藏的值,但您可以使用HashMap添加与列表相关的值。代码如下。你可以做那样的事情

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

您可以检索&#34; SubMenu1&#34;的ID使用 -

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

之后使用那个id。

答案 1 :(得分:0)

您可以使用其setTag(Object object)方法将对象类型分配给任何视图。稍后,您可以使用View getTag()方法获取此对象,并将其转换为所需类型。

如果您不想将数据存储在视图中,因为它与视图本身无关,而与数据无关,您可以使用android.util.Pair(或{{1} })类,像这样:

android.support.v4.util.Pair