我正在创建一个具有许多不同屏幕的Android应用程序,用户可以使用这些屏幕中提供的按钮或列表导航到这些屏幕。设计整个应用程序导航流程的最佳方法是什么?我应该将每个屏幕映射为View还是Activity?可以设计一个只有一个活动和许多视图的整个Android应用程序,其中每个视图代表一个屏幕,其中包含许多其他UI元素(按钮,列表,图像等)
答案 0 :(得分:5)
我建议您使用与另一个屏幕(与其相关的外观和数据)显着不同的每个“屏幕”新活动。这使您可以更轻松地进行控制,并且您不必使用大量变量来处理代码以定义不同的状态。使用不同的活动,您通常不必担心在不受欢迎或甚至未定义的状态下运行。
要在活动之间交换数据,您可以使用putExtra()将“简单”数据添加到INTENT
,或者对于更复杂的数据,您可以扩展Application并将该实例用作单例,然后您可以通过(MyApplication)getApplication();
答案 1 :(得分:4)
你真的希望远离单一活动的想法。这实际上是来自java模型1 Web应用程序日的反模式,称为“魔术servlet”。我想在这里它将被称为“魔术活动”。用户与之交互的每个逻辑“屏幕”应该是Activity类的实例。
基于用户交互修改单个用户界面元素是很好的,只要它只是一个或两个元素,或者只是屏幕的一部分,但在大多数情况下,你应该寻找将事情分解为自己的理由活动,不寻找将事情保持在一起的理由。从长远来看,它将使您的代码更易于维护和理解。