我正在使用libGDX框架在Android项目中工作,其中我展示了使用三个图形库的一些示例。一旦启动,应用程序必须显示一个菜单,其中包含每个样本的链接,标题和一些描述。目前,我正在手动创建所有内容,为每个样本声明一个新链接,但由于我将有大量样本,并且我将在每个应用程序版本中添加新内容,我想识别它们并生成一个新条目自动。
样本部分由名为Sample
的抽象类和从Sample
扩展的每个样本的类组成。我怎么能做到这一点?必要条件是有可能在运行时识别所有样本并获取有关它们的信息(名称,描述等),而无需先前创建实例。
我的实际选项是使用Annotations(不知道是否可能或者我是否需要外部库来在运行时搜索此注释)或使用类似JSON文件的内容。您认为解决此问题的最佳方式是什么(我当然愿意采用其他解决方案)?
答案 0 :(得分:1)
我建议使用XML并将您要创建的类作为Tag创建,如下所示:
<root>
<sampleimplement1 name ="sampleimplement1" descript="sample1 description" ..... more attributes here... />
<sampleimplement2 name ="sampleimplement2" descript="sample2 description" ..... more attributes here... />
<sampleimplement3 name ="sampleimplement3" descript="sample3 description" ..... more attributes here... />
</root>
现在可以使用libgdx的XmlReader
解析为Element
。所以元素不是根。
最后但并非最不重要的是,您可以遍历root
的子项,并检查标记的名称。根据名称,您可以创建Sample
的其他实现。
XmlReader r = new XmlReader();
Element e = r.parse(xml);//<--- the XML as string also possible as file
for (int i = 0; i < e.getChildCount(); i++)
{
Element child = e.getChild(i);
switch(child.getName()){
case "sampleimplement1":
//create sample1
break;
....
....
}