我是android的新手,为小学的孩子们写了一个学习应用程序。该应用程序用于练习简单的计算(加减)。
到目前为止,我已经完成了UI设计并编写了一个简单的概念验证实现来演示应用程序的基本用法。
其中一项活动的设计(添加123和456)如下所示:
|-----------------------------|
| |c| 1 |c| 2 |c| 3 |
| |
| 4 5 6 |
| -------------------- |
| | r1 | | r2 | | r3 | |
| |
| |
| 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 | 0 |
| cancel | check |
|-----------------------------|
numblock中的数字(0-9)是可以拖放到进位字段(|c|
)或结果字段(|r1|
等)的视图。已经下降到进位或结果字段的值也可以移动(再次拖放)到另一个进位或结果字段。
将会有多种练习模式,例如:
|-----------------------------|
| 1 + 9 = |r1|r2| |
| 2 + 8 = |r1|r2| |
| 3 + 7 = |r1|r2| |
| 4 + 6 = |r1|r2| |
| 5 + 5 = |r1|r2| |
| |
| |
| 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 | 0 |
| cancel | check |
|-----------------------------|
或:
|-----------------------------|
| 1 2 3 4 5 |
| | | | | | |
| |+| |+| | |
| | | | |
| |r1| |r2| | |
| | | | |
| \ \ / |
| \ |-| |
| \ | |
| \ |r3| |
| \ / |
| \ / |
| |+| |
| | |
| |r4| |
| |
| |
| 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 | 0 |
| cancel | check |
|-----------------------------|
对于我目前的实现,我在一个活动中放置了所有拖放内容,布局是一个.xml
个文件。
我想以某种方式重用拖放功能的代码来保持代码清洁,而不是在许多不同的活动中实现相同的功能。
我已经阅读过关于android中的片段,并考虑为numblock制作一个片段,并为每个丢弃数字的区域创建一个片段,但据我研究,在片段之间拖放并不是真正的方式去这里(drag and drop between two fragments,建议的解决方案似乎不是很优雅)。
现在,我正在考虑根据所需的模式,在单个活动的onCreate()
中动态创建所有内容,但是动态的numblock。我希望你对这种方法有所了解。这样做有可能出现问题吗?
是否有其他方法可以实现相同的功能并保持代码可维护? 您有关于如何设计我的代码尽可能简单和可维护的建议吗? 您将如何设计具有所需功能的应用程序?
答案 0 :(得分:5)
将设计决策留给你必须做出的一般建议肯定适用于此。我相信有数百种方法可以组织这样的代码。
在“活动”(或可能是片段)中,您到目前为止具有以下功能:
你能以某种方式分解这些不同的功能吗?
是否有适合自己上课的好东西?
这些元素将如何相互通信?
您打算如何创建活动的新实例?
我甚至没有开始回答你的问题,但这个答案已经很长了。
最重要的问题是你想从设计中得到什么?我猜测答案是尽可能简单地向应用添加新类型的问题。
可能对您有帮助的事情: