我是Android的开发新手。对于一个学校项目,我目前正在为儿童申请帮助他们学习写作 该应用程序将包含许多使用相同概念的级别,只有背景更改。我已经创建了一个工作正常的级别,现在完成工作,我想使用第一个代码添加级别。
那么这样做的好/通常方法是什么?
我认为我可以创建与关卡一样多的活动。在每个新活动中,我可以启动第一个活动,并将新背景作为参数。但是有50多个级别,我有这么多活动似乎有点奇怪。
感谢您的帮助:)
答案 0 :(得分:2)
如果更改为新背景将触发所有级别更改,我只需向活动添加级别成员变量(例如)侦听下一级别以更改背景。如果事实证明你将不得不改变背景,那么@Vucko的回答似乎是可行的。
绝对不要在五十个不同的活动中重复相同的代码五十次!
答案 1 :(得分:1)
你可以使用片段,特别是一种名为“var unique={}
var kt= {"Teams": [
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"},
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"},
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"R"},
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"},
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"},
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"},
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"},
{"id":"1","f1":"Currency","f2":"All","f3":"Aug-2016","color":"R"},
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"},
{"id":"1","f1":"Currency","f2":"All","f3":"Jun-2016","color":"G"},
{"id":"1","f1":"Currency","f2":"All","f3":"May-2016","color":"G"},
]};
kt.Teams.forEach(function(value){unique[value.f3]=0;});
console.log(Object.keys(unique));
”的片段,它会有一些你可以传递给它的参数,这样每个级别都不同,这些参数应该是参考关卡的内容(背景或其他)。这样你就可以重用相同的布局和相同的逻辑,只需根据你拥有的参数改变它的一些行为。
现在您需要做的就是更换容器中的片段,同时仍然只停留在一个Activity中。由于你的问题有点模糊,我现在不能提供任何实施技巧,而是一个基本的指导方针和需要考虑的方向。
答案 2 :(得分:1)
您可以使用将从所有其他活动扩展的BaseActivity进行代码集中化。否则,您可以始终使用相同的活动,并使用intent中的参数(例如,级别编号)启动它,并根据参数值创建自己的逻辑。最后,您还可以查看片段,将中心逻辑保持在同一个活动中。
答案 3 :(得分:1)
Fragment是您的解决方案,您可以简单地传递后台资产名称(throw intent)。