LPe*_*R90 9 user-interface android
我是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 |
|-----------------------------|
Run Code Online (Sandbox Code Playgroud)
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 |
|-----------------------------|
Run Code Online (Sandbox Code Playgroud)
要么:
|-----------------------------|
| 1 2 3 4 5 |
| | | | | | |
| |+| |+| | |
| | | | |
| |r1| |r2| | |
| | | | |
| \ \ / |
| \ |-| |
| \ | |
| \ |r3| |
| \ / |
| \ / |
| |+| |
| | |
| |r4| |
| |
| |
| 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 | 0 |
| cancel | check |
|-----------------------------|
Run Code Online (Sandbox Code Playgroud)
对于我目前的实现,我在一个活动中拥有所有拖放内容,并且布局是一个单独的.xml文件.
我想以某种方式重用代码来实现拖放功能,以保持代码清洁,并且在许多不同的活动中没有实现相同的功能.
我已经阅读过关于android中的片段,并考虑为numblock创建一个片段,并为每个丢弃数字的区域创建一个片段,但就我研究而言,片段之间的拖放并不是真正的方法(拖动并且在两个片段之间丢弃,建议的解决方案似乎不是很优雅).
现在,我正在考虑创建所有内容,但onCreate()根据所需的模式,动态地在单个活动中创建numblock .我希望你对这种方法有所了解.这样做时是否存在可能的问题?
是否有另一种方法来实现相同的功能并保持代码可维护?您有关于如何设计我的代码尽可能简单和可维护的建议吗?您将如何设计具有所需功能的应用程序?
将设计决策留给你必须做出的一般建议肯定适用于此.我相信有数百种方法可以组织这样的代码.
在活动(或可能是片段)中,您到目前为止具有以下功能:
你能以某种方式分解这些不同的功能吗?
是否有适合自己上课的好东西?
这些元素将如何相互通信?
您打算如何创建活动的新实例?
我甚至没有开始回答你的问题,但这个答案已经很长了.
最重要的问题是你想从设计中得到什么?我猜测答案是尽可能简单地向应用程序添加新类型的问题.
可能对您有所帮助的事情: