2011-03-25 52 views
0

onCreate()方法被调用,但新的Activity永远不会显示。没有错误记录。startActivity在HoneyComb中的片段中不起作用

后续 - 从Fragment调用startActivty()没有问题(我们在第二个Activity中导致它立即退出)中有一个错误。

来自Fragment的startActivity()与Fragment外部的startActivty()完全相同。

+0

Dude ..提供给我们一些代码..仅限于我们可以帮助你.. – mudit 2011-03-25 05:47:13

回答

5

一个片段不应该叫startActivity(),恕我直言。一个片段应该告诉它的活动来展示一些东西,而活动应该决定如何去做。在某些设备上,这可能会启动另一项活动。在某些设备上,这可能是通过添加一个片段。这个决定应该在活动层面做出,因为它是根据屏幕尺寸决定哪些片段进入哪些活动的活动。

Here is a sample application其中,在ListFragment上的某个项目的点击导致要么单独DetailsFragment(对于large/xlarge屏幕)被更新或弹出一个新的活性(正常屏幕)。

+1

这种情况是一个imageView,它打开一些可能不在此应用程序中的Activity。没有理由说明为什么第二个Activity必须转换为Fragment,而没有理由不调用startActivty()。 Fragment.startActivity()是Fragment接口的一部分,所以显然没有理由说明片段不应该调用startActivity()。 – user275479 2011-03-26 22:36:53

+0

@ user275479:“该案例是一个imageView,它打开了一些可能不在此应用程序中的Activity。” - 恕我直言,一个'ImageView'不应该在*任何* Android应用程序中打开一个'Activity',不止是一个'TextView'应该执行一个HTTP操作。 – CommonsWare 2011-03-26 22:45:15

0

问题是第二个Activity中的一个错误导致它立即退出。所以要回答我自己的问题,从Fragment调用startActivity没有问题。它的工作原理与从Fragment外部调用startActivity完全相同。