0

活動グループから、別の活動グループに属する子を呼び出す方法は?

私の DealDetailsActivity.java は、TabGroupactivity という名前の ActivityGroup の子アクティビティです。この中で、このように ViewStoreActivity という名前の別のアクティビティを呼び出しています。

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

そしてその働き。FavouriteGroupActivity という名前の別の ActivityGroup の子である RedeemedActivity という名前の別のアクティビティから、次のように DealDetailsActivity を呼び出しています。インテントの頻度の高いメッセージ = 新しいインテント (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 です。

ここでクラスキャスト例外が発生しています。つまり、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 に属さない子アクティビティを開始するように指示されます。

startChildActivity() の代わりに startActivity() を呼び出すことはできますか? startActivity() を呼び出すと、エラーが処理されます。

于 2013-01-23T07:04:01.357 に答える