我很想听听你们认为最简单的多项选择测验的最有效率/坚实的面向对象设计。设计建议:多项选择测验
基本上,应用程序提出了一系列问题,每个问题有4个选择。如果您选择的选项是正确的,那么新的活动会在正确的答案后面显示一些恭喜和全部细节,如果您错了,会说您错了,并附带详细信息等。
After那用户转到下一个问题。在每个新问题上,你都会看到你的分数。所以,也许你为每个正确答案得到50分,就像那样。
下面是我如何思考如何实现:使用一些单选按钮或可用于选择答案的其他小部件创建自定义视图。自定义视图需要一个Question对象,它只是一个普通的旧Java对象,其中包含用于选择1-4的字段。然后,在自定义视图中,我可以将单选按钮的文本设置为来自我的Question对象的选项。
因此,在我activity
它会看起来像Question myQuestion = new Question("string for choice 1", "string for choice 2"...)
然后..
使用我的自定义视图的问题。 QuestionView myView = new QuestionView(this, myQuestion);
好的,这一切都很棒。我只是想知道我是否为了麻烦而设置自己。首先,我必须跟踪所有问题活动的分数。是否有意义让我的所有问题具有一些子类,主要是空的,我创建的activity
可以有一个计数器,当用户得到答案时(即在我的超类活动int scoreKeeper;
和每个活动的子类中此活动:if(choiceIsCorrect) scoreKeeper++
)。这将使分数在整个活动中持续存在。我意识到我可以在活动之间进行分数传递和额外的每一项新活动,然后简单地加入它,但这对我来说似乎没有任何意义。
对不起所有的blabbering ..但我想我的问题是:你认为这是最简单的设计?另外,总的来说,我总是认为,只要用户正在做一个“单一的,有针对性的事情”,就应该总是使用新的活动......就像Android范例所说的那样。但有时候创造这么多活动感觉很奇怪。我知道“感觉奇怪”这个事实没有理由不这么做,但是什么时候重用活动才是有意义的(例如,在这种情况下,只需在我的活动中交换一个新问题并相应地更新UI)而不是开始一项新的活动?
此外,一个更详细的问题 - 什么是平滑的方式来设置哪个选项(例如哪个单选按钮)包含正确的答案,以便当用户按下提交时,我可以检查他们是否有正确的答案,是/没有相应的反应?
总结:
- 什么是简单的,面向对象的方式来创建的选择题活动继承?
- 跟踪评分最明智的方法是什么?
- 每个问题是否都必须是单独的活动? (一般来说,你们如何处理是否应该是一个单独的活动的问题?)
- 此外,有什么特别的:什么是最简单的方法来标记哪个选择是正确的,所以我可以检查用户是否正确?例如,我知道使用单选按钮,您可以使用onCheckedChangeListener并检索当前选中哪个单选按钮,但是我不确定如何在我的设计中使用该按钮来检查用户是否正确。
谢谢!
不,不适用于任何班级。只是从那些具有设计模式经验的人那里寻求一些建议。我知道我可以“完成”,但我想看看是否有更好的方法。 – LuxuryMode 2011-06-13 18:26:07