0

从一个活动组如何调用属于不同活动组的孩子?

我的 DealDetailsActivity.java 是名为 TabGroupactivity 的 ActivityGroup 的子活动。在此,我正在调用另一个名为 ViewStoreActivity 的活动,如下所示。

Intent frequentMessages = new Intent(getParent(),ViewStoreActivity.class);
 TabGroupActivity parentActivity = (TabGroupActivity)getParent();
 parentActivity.startChildActivity("ViewStoreActivity", frequentMessages);

及其工作。从另一个名为 RedeemedActivity 的活动中,它是另一个名为 FavouriteGroupActivity 的 ActivityGroup 的子活动,我像这样调用 DealDetailsActivity;IntentfrequentMessages = new Intent(getParent(),DealDetailsActivity.class); parentActivity.startChildActivity("DealDetailsActivity_fav",frequentMessages);

之后,当我尝试像第一个代码一样调用 ViewStoreActivity 时,我遇到了错误。

01-23 10:44:04.373: E/AndroidRuntime(1807): Caused by: java.lang.ClassCastException: com.dom.shoppers.FavouriteGroupActivity cannot be cast to com.dom.shoppers.TabGroupActivity

viewstoreactivity 的超类是 TabGroupActivity。

并且在这里发生了classcastexception,即TabGroupActivity parentActivity = (TabGroupActivity)getParent();

泰语是,站在属于另一个名为 TabGroupActivityFavs 的活动组的活动中,我试图调用属于 Tabgroupactivity 的活动。所以发生错误说不能将 TabGroupActivityFavs 强制转换为 TabGroupActivity。

有没有办法实现这个....

如果我使用 startactivity(),那么我不会查看选项卡。因为我希望所有活动的标签一致,所以我不能使用它....

任何的想法 ???

4

1 回答 1

1

感谢您的澄清。什么是直接超类ViewStoreActivity?我从您发布的 LogCat 条目中假设它是 FavouriteGroupActivity。那是对的吗?而且,错误被抛出在哪一行?

Intent frequentMessages = new Intent(getParent(), DealDetailsActivity.class);吗?

或者parentActivity.startChildActivity("DealDetailsActivity_fav", frequentMessages?我很确定应该是这条线引发了错误,但如果我错了,请告诉我。您收到错误的原因是因为 ViewStoreActivity 不是 TabGroupActivity 的子项。当您调用 startChildActivity 时,您基本上是在告诉它启动一个不属于 TabGroupActivity 的子活动。

您是否可以调用 startActivity() 而不是 startChildActivity()?如果您调用 startActivity() 那么它应该处理您的错误。

于 2013-01-23T07:04:01.357 回答