如何显示一个巨大的类别和子类别列表?

时间:2012-08-09 11:11:59

标签: android if-statement autocomplete switch-statement

我正在构建一个android应用 我有一个巨大的类别列表(~50)要显示给用户,我目前正在使用AutoCompleteTextView来允许用户选择。

但我的问题是我还有一个巨大的列表(每个类别约10个)我必须显示的子类别,并且让用户选择一个,子类别必须根据所选类别显示。

除了写一个巨大的switch-caseif-else块之外,我该怎么做?

我不太确定但可以使用反射来检查R.java的字段,然后获取包含子类别的资源的ID?假设我当然使用了正确的命名约定。

2 个答案:

答案 0 :(得分:1)

我认为您不应该使用布局文件中的所有类别和子类别来实现此功能。我会通过Java代码生成布局,这样我就可以轻松添加一些智能技巧。

例如,您可以通过编程方式添加“标记”值,以帮助您识别所选项目。

答案 1 :(得分:1)

这是基于@Jordi答案灵感的改进。

使用正则表达式的强大功能,我在巨大的XML文件中做了一些修改。

创意是创建java.util.Map<String,String[]>,键是类别,值是子类别。

因此,我可以按map.keySet()获取类别列表,然后根据用户选择 我可以map.get(selection)来获取子类别列表。