使用intent来添加xml布局比使用addview()更好吗?

时间:2014-02-20 12:28:21

标签: android xml android-intent

我是Android开发的新手,我使用addView()和removeViewAt()来切换我的xml布局。

我看到我的朋友使用Intents来做这件事,看到他的每个xml布局都有自己的活动类,调用setContentView()来显示视图。

所以我想知道哪种方法更好用?

3 个答案:

答案 0 :(得分:0)

如果我理解正确,您正在使用单个活动,并动态更改通过Java代码显示的布局。你的朋友,使用Intents来使用多个活动并从一个“跳”到另一个。

我认为使用意图改变活动是最正确的方法。如果您使用普通活动(我的意思是,您不使用片段),您可能希望为应用的每个屏幕创建不同的活动。 如果您计划使用片段,则通常的过程是创建包含片段的活动,并动态更改片段。

我不确定在执行此操作时是否存在任何安全性或性能影响,但您在每本书和教程中看到的“官方”方式是具有不同活动和意图的方式。

希望有所帮助

答案 1 :(得分:0)

在Android中,您通常会将应用程序分离到活动中。每项活动都有所作为。 例如,在gmail应用程序中,(通常)第一个活动会向您显示传入的电子邮件。从导航抽屉(左侧菜单)中,您可以跳转到其他活动。如果按操作栏中的“新邮件”按钮,则会打开一个新活动来编写电子邮件。

这是android应用程序应该如何工作。每项活动都有所作为,并有自己的生命。当您按下后退按钮时,如果没有指定其他内容,则返回上一个活动。

当android没有资源时,他正在杀死活动活动,同时保存他们的状态。这意味着他将它们从记忆中取出但保存了它们的状态,以便它可以在以后再次启动它们。它列出了最常用的活动,并先杀死它们。当用户导航回该活动时,android使用现有实例,如果它被杀死,则使用保存状态创建一个新实例。

使用活动的另一个原因是可以在发生某些事件时调用它们。您的主要活动可能是由一个动作MAIN开始的。你可以在android清单文件中看到它。还有像SEND这样的其他操作。当另一个应用程序想要与其他应用程序共享数据时(例如,如果用户按下共享按钮),它会发送带有SEND操作的意图,用户可以从处理该操作的所有活动中进行选择(您可以将其添加到android清单)。

有很多关于android开发人员活动的信息。这是链接:http://developer.android.com/guide/components/activities.html

答案 2 :(得分:0)

您只是删除所有视图并在同一个Activity中放置新视图(简单单词中的Activity是用户交互的单个屏幕)。但这是错误的做法。 (因为你不能使用Activity生命周期)。

通过为所有屏幕创建活动,您可以做同样的事情(在我们使用Intent的活动之间切换)。每个活动都有自己的生命周期。所以你可以做很多事情。 由于你是在Android,所以我建议你通过这些链接 -

Activity

Starting Another Activity