2011-10-02 19 views
2

具体来说,人们遵循什么样的约定?如果我使用多个屏幕构建程序,是否为每个屏幕创建一个活动?如何正确构建Android应用程序?

如果我想在活动之间正确导航,我是否坚持每个活动的意图?我想尽可能使此代码干净和高效

回答

3

总之:是的。

尽管您可以通过在单个Activity内动态更改UI来解决此问题,但是android建议应将每个应用程序的“活动”编码到单独的Activity类中。

在android推荐的方式上看到这个quite good article

这种意图/活动设计模式具有许多优点,其中一个优点是您可以覆盖 并使用匹配的意图过滤器自行扩展其他应用程序活动。

我发现你很关心效率。请确保Activity中的Activity切换开销在android中进行了高度优化(例如,Dalvik实例总是预先分配的,可以在没有上下文切换开销的情况下处理新活动)。

+0

谢谢你,你是一个绅士和学者 – volk

1

简短的回答:这真的取决于你想如何布局你的应用程序。

例如,如果您想要制表符,您可以使用tabhost,这将很容易在您的活动之间切换。

如果你想自己启动活动,你可以启动活动与意图(如你在你的问题中提到)。一个例子是从Button或ListView启动意图。对于一个ListView(与OnItemClickListener),你可能有类似:

(your ListView).setOnItemClickListener(new AdapterView.OnItemClickListener() { 
public void onItemClick(AdapterView<?> av, View v, int index, 
    long arg3) { 
     Intent intent = new Intent(TheActivityYou'reLaunchingFrom.this, OtherActivityYouWishToLaunch.class); 
     startActivity(intent); 
    } 
} 

我提供的链接有很好的例子。当你希望结束从其他活动启动的活动时,可以调用finish(),该活动应该从不同的事件中调用(如单击按钮)。

另外请记住,您可以启动活动,希望通过使用Bundle的startActivityForResult接收已启动活动的数据。

+1

谢谢,这是很好的信息 – volk

+0

哈哈没问题的人。我知道它并没有直接回答你的问题,但我认为这可能使你在实施方面走上正轨。 – Vinay

相关问题