1

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

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

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

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

4

2 回答 2

1

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

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

于 2012-08-09T11:45:20.233 回答
1

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

使用正则表达式的力量,我在这个巨大的XML文件中做了一些修改。

想法是创建一个java.util.Map<String,String[]>,键是类别,值是子类别。

所以我可以得到类别列表,map.keySet()然后根据我可以做的用户选择map.get(selection)来获取子类别列表。

于 2012-08-09T13:22:35.607 回答