在我的应用程序中,我有3个包含ListViews的选项卡,具体取决于之前选项卡中的选择。基本上,第一个选项卡将列出餐馆,第二个选项卡将列出所选餐厅的子菜单,第三个菜单将列出所选子菜单的项目,然后当选择项目时,它将显示有关该项目的一些营养信息。我不知道组织餐馆/子菜单/项目的最佳方式,但我想的方式是嵌套的HashMap,如下所示。
HashMap<String, HashMap<String, HashMap<String, Double[]>>>
我不知道该怎么做,是有效地构建这个地图,以便将来添加/删除东西。我在看xml,但我无法弄清楚如何做到这一点。如果我这样做,我还需要帮助编写Java代码来解析xml并将其全部放入其映射中的正确位置。我不确定你是否需要使用标签,或者你是否可以只使用一个利用map的xml文件,然后将其“导入”到你的java项目中。我不认为对Java中的每一项进行硬编码会非常有效,所以我希望能得到一些帮助。
Possble,像这样?没完全填写,但我真的不知道我在做什么。
<?xml version="1.0" encoding="UTF-8"?>
<util:map name="foodmapping">
<restaurant key="McDonalds">
<util:map>
</util:map>"
</restaurant>
<restaurant key="Starbucks">
<value>2
</value>
</restaurant>
</util:map>
答案 0 :(得分:0)
这可能不是特定的。我不知道android但是我用于嵌套hashmaps的基本原理。初始化应该是最先嵌套的第一个
我可能没有最好的答案。我不擅长解释。但这是一个代码示例。 注意:这可能不适用于Android,因为我说我从来没有使用过android。这是基本的java代码。
HashMap<String,HashMap<String,HashMap<String,Object>>>example1 = new HashMap<>();
// Init should be furthest first.
HashMap<String,Object>furthest = new HashMap<>();
// This will start up middle level.
HashMap<String,HashMap<String,Object>>middle = new HashMap<>();
// Now that that is done. We can load up values
middle.put("first",furthest);
//Now middle is loaded with basic startup.
example1.put("first",middle);
//Now this initialization example is complete.
example1.get("first").get("first").put("lowestSecond",/*SOME OBJECT HERE*/); // This is an example of how to put more data into the furthest level down.
我不相信这是你的最佳答案。但这是我用来启动多级hashmap的基本代码