2011-07-19 44 views
4

我是新来的android编程,但有一个非常强大的Java背景。我正在创建一个相当简单的游戏,涉及通过各种短小的“关卡”进行游戏,整个游戏都是定时的,目标是尽可能缩短游戏时间。我把关卡放在引号中,因为它们非常短,主要包括做一些简单的任务(即点击一个按钮),然后进入下一个任务。因此,我不是为每个级别创建不同的活动,而是决定将所有内容都保存在一个活动中,并且当用户完成一个级别的所有任务时,使用setContentView()方法设置不同的布局。我的问题是,每次我切换布局时,我都需要使用findViewById()重置指向按钮的指针,即使它们的命名方式相同。如果有人能够解释为什么我需要这样做会很有帮助?另外,因为我对android相当陌生,也许我不会以最有效的方式解决这个问题?任何建议都会受到欢迎和赞赏。在同一活动中更改/使用多个布局?

此外,我认为这可能是相关的,但我有一个天文台,我想在整个布局持久?我在其他问题中看到,这在各项活动中都无法实现,但我想检查跨布局的情况。

非常感谢您的帮助。

编辑:谢谢阿尼亚,viewflipper貌似完美的解决方案

编辑:那么与ViewFlipper一些尝试后,我决定用我的项目。虽然它不能解决每个新级别重新添加按钮的问题(我通过为每个按钮指定一个明确的名称(即使在所有布局中都解决了这个问题),但它确实为我提供了一些不错的动画效果以及方便使用showNext和showPrevious方法。

回答

2

你试过ViewFlipper?在这种情况下,它似乎是完美的解决方案

+0

在看了ViewFlipper之后,我是否对你的想法/想到我会用它来基本循环布局?我以前没有用过这个,所以有什么想法是否可以解决每次重置按钮的问题? – jmh

+0

在ViewFlipper中,您可以放置​​许多不同的视图,您可以在它们之间进行动画制作。这和你现在正在做的一样。我不知道你是如何定义按钮,它们是在你的布局中,还是在你的每个布局上都是不变的?如果按钮始终存在,则可以在布局中使用ViewFlipper和按钮。 VF将在视图之间切换,但按钮将一直在那里。同样的事情将与天文台一起工作。 – ania

+0

您的按钮不在setContentView之后,因为此方法从xml文件创建新布局。你期望如果你定义了具有相同id的按钮,什么都不会改变,但在setContentView方法之后,你以前的视图对象不再可用(你的按钮和它)和新的布局(视图对象)被创建(使用新的按钮)。在这种情况下给出相同的名称不会改变任何内容,但您仍然必须以新的布局再次找到您的对象。 – ania