我正在构建一个android
应用
我有一个巨大的类别列表(~50)要显示给用户,我目前正在使用AutoCompleteTextView
来允许用户选择。
但我的问题是我还有一个巨大的列表(每个类别约10个)我必须显示的子类别,并且让用户选择一个,子类别必须根据所选类别显示。
除了写一个巨大的switch-case
或if-else
块之外,我该怎么做?
我不太确定但可以使用反射来检查R.java
的字段,然后获取包含子类别的资源的ID?假设我当然使用了正确的命名约定。
答案 0 :(得分:1)
我认为您不应该使用布局文件中的所有类别和子类别来实现此功能。我会通过Java代码生成布局,这样我就可以轻松添加一些智能技巧。
例如,您可以通过编程方式添加“标记”值,以帮助您识别所选项目。
答案 1 :(得分:1)
这是基于@Jordi答案灵感的改进。
使用正则表达式的强大功能,我在巨大的XML
文件中做了一些修改。
创意是创建java.util.Map<String,String[]>
,键是类别,值是子类别。
因此,我可以按map.keySet()
获取类别列表,然后根据用户选择
我可以map.get(selection)
来获取子类别列表。