我有关于Android活动和AndroidManifest.xml的这个问题。当我使用Java servlet时,出现了问题,并想创建一个“基于模块”或类似于基于插件的服务器。这工作正常,我可以使用类似于此的代码方法动态加载我想要的servlet:Dynamically add a servlet to the servletConfig。服务器启动期间动态地找到并映射servlet。动态活动注册
这里的问题不是如何找到适当的活动,或如何创建它们的新实例,或者如何启动它们,我已经发现了这一部分。我可以迭代我的包并找到适当的Activity类,创建它们的新实例并将它们添加到列表中。
我一直在使用一个interface
,所有的活动必须执行才能成为一个有效的活动。这样,我可以为我的应用程序创建新的部件,扩展或新功能,并且一切正常。在我的应用程序中,我有一个用户可点击的按钮列表,通过使用ListView
将它们添加到我的视图中来生成按钮列表。
private void displayLoadedContent() {
View v = inflateLayout(R.layout.buttonlayout);
ListView view = (ListView) v.findViewById(R.id.list);
view.setAdapter(new ListButtonAdapter(this, content));
}
其中content
被声明为
List<MyActivityInterface> content;
和ListButtonAdapter
延伸BaseAdapter
。
那么在那里没有问题。问题是我必须在AndroidManifest.xml中声明每一个我的活动。该文件就像是一个可能显示的活动的大名单,并且有点麻烦,所以我不打算在这里显示代码。
我意识到我不得不向清单添加一项活动,但我希望这项活动应该足够。我的方法在很多方面可以看作是Front Controller pattern,其中每个活动负责加载和显示他们所需的活动性。
我只是问是否有可能在清单中动态注册表活动(或允许它们以另一种方式运行),如果否,是否还有其他有效的解决方案?
如果我不得不使用碎片,那么这会限制自从Fragmens在api level 11中引入后我可以达到的用户和设备的数量。希望找到一种解决方案,不会使任何(或大的) )设备的数量。 – Heskja
片段可通过[支持库](http://developer.android.com/training/basics/fragments/support-lib.html)返回1.6。 – wsanville
我不知道,所以谢谢。我可能会尝试;)出于好奇,是否有人知道另一种解决方案? – Heskja